source: trunk/expressoMail1_2/js/search.js @ 271

Revision 271, 21.9 KB checked in by niltonneto, 16 years ago (diff)

Fechamento de versão: 1.2211
Tickets:

#50 Criar uma funcionalidade para inserir imagens embutidas no corpo da mensagem.
#174 Implementar rascunho com anexos
#182 Criar funcionalidade de salvar automaticamente os emails em rascunhos
#183 Funcionalidade de drag and drop na busca
#185 Adicionar tabela na edição de email
#186 Correção do problema com nomes de anexos com caracteres especiais
#188 Definir aspectos de QA do ExpressoMail?
#190 Problema ao salvar informações de filtros no IE

  • Property svn:eol-style set to native
  • Property svn:executable set to *
Line 
1/**************************************************************************\
2 Início
3\**************************************************************************/
4        function 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        var search_tabs = 0; // Count the number of seach tabs
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 = "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
82        searchE.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;
134        searchE.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
155        function 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       
168        function 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
183        function 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
198        function 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
215        function 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;
241        searchE.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                if (sort_type == 'SORTDATE')
247                        var_tmp.sort(date_comp);
248                if (sort_type == 'SORTBOX')
249                        var_tmp.sort(box_comp);
250                if (sort_type == 'SORTSUBJECT')
251                        var_tmp.sort(subject_comp);     
252                if (sort_type == 'SORTWHO')
253                        var_tmp.sort(who_comp);
254                if (sort_type == 'SORTSIZE')
255                        var_tmp.sort(size_comp);       
256               
257                for(var i=0; i < var_tmp.length; i++){
258                        if(var_tmp[i] != ""){
259                                nw_array[cont] = var_tmp[i];
260                                cont++;
261                        }
262                }
263                search_tabs += 1;
264                var border_id = create_border(get_lang("Search Results"), "search_" + search_tabs);
265                var table = document.createElement("TABLE");
266                table.id    = "table_resultsearch_" + search_tabs;
267                table.width = "100%";
268                table.borderColorDark = "#bbbbbb";
269                table.frame = "void";
270                table.rules = "rows";
271                table.cellPadding = "0";
272                table.cellSpacing = "0";
273
274                var tbody = document.createElement("TBODY");
275                tbody.id    = "tbody_resultsearch_" + search_tabs;
276                if(nw_array.length > 0){
277                        write_msg(nw_array.length + " "+ get_lang('results found'));                   
278                }
279
280                for( var i=0; i < nw_array.length; i++){
281                        var tr = document.createElement("TR");
282                        tr.style.height = "30px";
283                        tr.className = 'tr_msg_read';
284
285                        if (nw_array[i].match(/.*--.*--\w*--\d{2}\/\d{2}\/\d{4}--\d+? \w*b--\d*$/g) == null) //subject with "--"
286                        {
287                                var aux1 = nw_array[i].match(/\d{2}\/\d{2}\/\d{4}--\d+? \w*b--\d*$/g);
288                                aux1 = aux1[0].split("--");
289                                nw_array[i] = nw_array[i].substr(0, nw_array[i].indexOf(aux1[0])-2);
290                                var aux = [];
291                                aux[0] = nw_array[i].substr(0, nw_array[i].indexOf('--'));
292                                nw_array[i] = nw_array[i].substr(nw_array[i].indexOf('--')+2);
293                                aux[1] = nw_array[i].substr(0, nw_array[i].indexOf('--'));
294                                aux[2] = nw_array[i].substr(nw_array[i].indexOf('--')+2);
295                                aux = aux.concat(aux1);
296                        }
297                        else
298                        {
299                        var aux = nw_array[i].split("--");
300                        }
301                        for(var j=0 ; j < aux.length ; j++){
302                                        var mailbox = aux[0];
303                                        var uid_msg = aux[5];
304                                        tr.id = mailbox + ";" + uid_msg;
305                                        var td = document.createElement("TD");                                 
306                                       
307                                if( j <= 5){
308                                        if( j == 0){
309                                                td.style.width = "1%";                                 
310                                                var subject_encode = url_encode(aux[2]);
311                                                var td1 = '<input type="checkbox" id="check_box_search_message_'+tr.id+'"></input>';
312                                        }
313                                        if( j == 1){
314                                                td.style.width = "20%";                                 
315                                                var nm_box = aux[0].split(cyrus_delimiter);
316                                                var td1 = nm_box.pop();
317                                                td.setAttribute("NoWrap","true");
318                                                td.style.overflow = "hidden";
319                                                td.style.color = "#42795b";
320                                                td.style.fontWeight = "bold";
321                                                if(td1 == "INBOX"){
322                                                        var td1  = get_lang("Inbox");
323                                                }
324                                        }
325                                        if( j == 2){
326                                                var subject_encode = url_encode(aux[2]);
327                                                td.width = "20%";                                       
328                                                var td1  =  '<div style="width:100%;overflow:hidden">'+aux[1]+"</div>";
329                                        }
330                                        if( j == 3){
331                                                var subject_encode = url_encode(aux[2]);
332                                                if (! subject_encode)
333                                                        aux[2] = get_lang("no subject") + "...";
334                                                td.width = "30%";                                       
335                                                var td1  = '<div style="width:100%;overflow:hidden"><a href=javascript:void(0) onclick=EsearchE.open_msg(\"' + url_encode(mailbox) + '\",\"' + uid_msg + '\",\"' + subject_encode + '\")>' + aux[2] +'</a></div>';
336
337                                        }
338                                        if( j == 4){
339                                                td.width = "14%";                                       
340                                                td.align = "center";
341                                                var td1  = aux[3];
342                                        }
343                                        if( j == 5){
344                                                td.width = "15%";
345                                                td.align = "center";
346                                                var td1  = aux[4];
347                                        }
348
349                                        td.innerHTML = td1;
350                                        tr.appendChild(td);
351                                }
352                        }
353                        aux.splice(0,(aux.length));     
354
355                subject = tr.firstChild;
356                subject = subject.nextSibling.nextSibling.nextSibling.firstChild.firstChild.innerHTML;
357//              _dragArea.makeDragged(tr, msg_number, subject, true);
358                _dragArea.makeDragged(tr, tr.firstChild.firstChild.id.substr(tr.firstChild.firstChild.id.indexOf(';')+1), subject, true);
359                tbody.appendChild(tr);
360                }
361                table.appendChild(tbody);
362               
363        var content_search =  Element('content_id_' + "search_" + search_tabs);
364        // BEGIN MAKE THE SCROLL HEIGHT         
365        var defaultWidth = document.body.offsetWidth - 31;     
366        var menuHidden = Element("folderscol").style.display == 'none' ? true : false;
367        if(!menuHidden)
368                defaultWidth -= Element("folderscol").offsetWidth;                     
369        var bar = Element("toolbar");
370        var offset = 0;
371        if(bar.style.visibility != 'hidden')
372                offset = bar.offsetHeight ? bar.offsetHeight :  bar.clientHeight;               
373        var div_scroll_result = document.createElement("DIV");
374        div_scroll_result.id = "div_result_scroll_"+search_tabs;
375        div_scroll_result.style.background = 'WHITE';
376        div_scroll_result.style.height = document.body.clientHeight - offset - 120;
377        content_search.style.height = document.body.clientHeight - offset - 80;
378        div_scroll_result.style.overflow = "auto";
379        div_scroll_result.style.width = defaultWidth - (is_ie ? 7 : 0);
380        // END MAKE THE SCROLL HEIGHT           
381               
382       
383                if(is_ie)
384                        Element("border_table").width = "99.5%";
385               
386                /* Put header */
387                var table_element = document.createElement("TABLE");
388                var tbody_element = document.createElement("TBODY");
389                table_element.setAttribute("id", "table_message_header_box");
390                table_element.className = "table_message_header_box";
391                tr_element = document.createElement("TR");
392                tr_element.className = "message_header";
393                td_element0 = document.createElement("TD");
394                td_element0.setAttribute("width", "1%");
395                chk_box_element = document.createElement("INPUT");
396                chk_box_element.id  = "chk_box_select_all_messages";
397                chk_box_element.setAttribute("type", "checkbox");
398                chk_box_element.className = "checkbox";
399                chk_box_element.onclick = function(){select_all_search_messages(this.checked,content_search.id);};
400                chk_box_element.onmouseover = function () {this.title=get_lang('Select all messages.')};
401                chk_box_element.onkeydown = function (e){
402                        if (is_ie)
403                        {
404                                if ((window.event.keyCode) == 46)
405                                        delete_msgs(get_current_folder(),'selected','null');
406                        }
407                        else
408                        {
409                                if ((e.keyCode) == 46)
410                                        delete_msgs(get_current_folder(),'selected','null');
411                        }
412                };
413               
414                td_element0.appendChild(chk_box_element);
415                td_element1 = document.createElement("TD");
416                td_element1.setAttribute("width", "20%");
417                td_element1.align = "left";
418                td_element1.onclick = function () { EsearchE.mount_result(data,'SORTBOX'); delete_border(border_id,false);};
419                td_element1.innerHTML = get_lang("Folder");
420                td_element2 = document.createElement("TD");
421                td_element2.setAttribute("width", "20%");
422                td_element2.align = "left";
423                td_element2.onclick = function () { EsearchE.mount_result(data,'SORTWHO'); delete_border(border_id,false);};
424                td_element2.innerHTML = get_lang("Who");
425                td_element3 = document.createElement("TD");
426                td_element3.setAttribute("width", "30%");
427                td_element3.align = "left";
428                td_element3.onclick = function () { EsearchE.mount_result(data,'SORTSUBJECT'); delete_border(border_id,false);};
429                td_element3.innerHTML = get_lang("Subject");
430                td_element4 = document.createElement("TD");
431                td_element4.setAttribute("width", "14%");
432                td_element4.align = "center";
433                td_element4.onclick = function () { EsearchE.mount_result(data,'SORTDATE'); delete_border(border_id,false);};
434                td_element4.innerHTML = get_lang("Date");
435                td_element5 = document.createElement("TD");
436                td_element5.setAttribute("width", "15%");
437                td_element5.align = "center";
438                td_element5.onclick = function () { EsearchE.mount_result(data,'SORTSIZE'); delete_border(border_id,false);};
439                td_element5.innerHTML = get_lang("Size");
440       
441                tr_element.appendChild(td_element0);
442                tr_element.appendChild(td_element1);
443                tr_element.appendChild(td_element2);
444                tr_element.appendChild(td_element3);
445                tr_element.appendChild(td_element4);
446                tr_element.appendChild(td_element5);
447                tbody_element.appendChild(tr_element);
448                table_element.appendChild(tbody_element);
449                content_search.appendChild(table_element);
450                /*end of "put header"*/
451
452                var span_options = document.createElement("SPAN");             
453                if (span_options)
454                        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> | '+
455                                '<span title="'+get_lang("Move")+'" class="message_options" onclick=wfolders.makeWindow(\"'+content_search.id+'\",\"move_to\")>'+get_lang("Move")+'</span>';
456                div_scroll_result.appendChild(table);
457                content_search.appendChild(div_scroll_result); 
458                if (span_options)
459                        content_search.appendChild(span_options);
460        }
461
462        searchE.prototype.open_msg = function(mailbox, uid_msg, subject){
463                var handler_get_msg = function(data){
464                        if(Element("border_id_" + uid_msg + "_r")){alert(get_lang("This message is already opened!"));}
465                        else{draw_message(data,create_border(url_decode(subject), uid_msg + "_r"));}
466                }
467                var args   = "$this.imap_functions.get_info_msg";
468                var params = "msg_number=" + uid_msg + "&msg_folder=" + mailbox;
469                cExecute(args,handler_get_msg,params);
470
471        }
472
473        // Adiciona caixas postais na busca;
474        searchE.prototype.add_mailboxes = function(){
475                var sel = Element("sel_search_nm_box1");
476                var name_box     = this.name_box_search.split(cyrus_delimiter);
477                if(this.name_box_search == "")
478                        return false;
479                var name_box_def = "";
480                if(name_box.length != 1){
481                        name_box_def = name_box[(name_box.length-1)];
482                }else{
483                        name_box_def = get_lang("Inbox");               
484                }
485                if( sel.length > 0){
486                        for(var i=0; i < sel.options.length; i++){
487                                if(sel.options[i].value == this.name_box_search){
488                                        alert(get_lang('This message is already selected!'));
489                                        return false;
490                                }
491                        }
492                }
493                var opt = new Option(lang_folder(name_box_def),this.name_box_search,false,true);
494                sel[sel.length] = opt;
495        }
496        // Remove as caixas postais na busca;
497        searchE.prototype.del_mailboxes = function(){
498                var sel = Element("sel_search_nm_box1");
499                if(sel.length > 0){
500                        for(var i=0; i < sel.options.length; i++){
501                                if(sel.options[i].selected == true){
502                                        sel.options[i] = null;
503                                        i--;
504                                }
505                        }
506                }
507       
508        }
509        // todas as caixas
510        searchE.prototype.all_mailboxes = function(){
511                var value = Element("check_all_msg").checked;
512                var cont = parseInt(0);
513                if(value){
514                        if(EsearchE.all_boxes.length > 0){
515                                EsearchE.all_boxes.splice(0,(EsearchE.all_boxes.length));                       
516                        }
517                        for(var i=0; i < folders.length; i++){
518                                EsearchE.all_boxes[cont] = folders[i].folder_id;
519                                cont++;
520                        }
521                }else{
522                        EsearchE.all_boxes.splice(0,(EsearchE.all_boxes.length));
523                }
524        }
525
526        // Search;
527        searchE.prototype.func_search = function(value){
528                var fields = "##";
529                        // Verifica se os campos estão preenchidos;
530                        if(trim(Element("txt_ass").value) != ""){
531                                fields += "SUBJECT " +  "<=>" +url_encode(Element("txt_ass").value) + " ";
532                        }
533                        if(trim(Element("txt_body").value) != ""){
534                                fields += "BODY " + "<=>" + url_encode(Element("txt_body").value) + " ";
535                        }
536                        if(trim(Element("txt_de").value) != ""){
537                                fields += "FROM " + "<=>" + url_encode(Element("txt_de").value) + " ";
538                        }
539                        if(trim(Element("txt_para").value) != ""){
540                                fields += "TO " + "<=>" + url_encode(Element("txt_para").value) + " ";
541                        }
542                        if(trim(Element("txt_cc").value) != ""){
543                                fields += "CC " + "<=>" + url_encode(Element("txt_cc").value) + " ";
544                        }
545                        if(value) {
546                                fields = "##ALL " +  "<=>" +url_encode(value) + " ";
547                        }
548
549                fields += "##";
550                if(fields == "####"){
551                        alert(get_lang("Define some search parameters!"));
552                        return false;
553                }
554               
555                if(Element("check_all_msg").checked){
556                        var nm_box = new Array;
557                        for(var i=0; i < EsearchE.all_boxes.length; i++){
558                                nm_box[i] = EsearchE.all_boxes[i] + fields;
559                        }
560                }else{
561                        var nm_box = new Array;
562                        var sel_combo = Element("sel_search_nm_box1");
563                        if( sel_combo.options.length <= 0){
564                                alert(get_lang("Define the boxes to search!"));
565                                return false;
566                        }
567                       
568                        for(var i=0; i < sel_combo.options.length; i++){
569                                sel_combo.options[i].selected = true;
570                        }
571                        for(var i=0; i < sel_combo.options.length; i++){
572                                if(sel_combo.options[i].selected == true){
573                                        nm_box[nm_box.length] = sel_combo.options[i].value + fields;
574                                }
575                        }
576                }
577                var handler = function(data){
578                        if(data == "none"){alert(get_lang("None result was found."));}
579                        else if(data == "many results"){alert(get_lang("More than %1 results. Please, try to refine your search.",50));}
580                        else{EsearchE.mount_result(data);}
581                }
582                var args   = "$this.imap_functions.search_msg";
583                var params = "condition=" + nm_box;
584                cExecute(args,handler,params);
585        }
586        // clean;
587        searchE.prototype.func_clean = function(){
588                // Limpa os campos;
589                for(var i=0; i < this.fields.length; i++){
590                        if(Element("txt" + this.fields[i]) != null){Element("txt" + this.fields[i]).value = "";}
591                }                       
592            if(Element("check_all_msg") != null){Element("check_all_msg").checked = false;}
593
594            EsearchE.all_boxes.splice(0,(EsearchE.all_boxes.length));
595                EsearchE.del_mailboxes();
596        }
597
598        // close
599        searchE.prototype.func_close = function(type){
600                var _this = this;
601                _this.name_box_search = "";
602                EsearchE.all_boxes.splice(0,(EsearchE.all_boxes.length));
603                _this.type = type;
604                _this.searchW['window_search'].close();
605        }
606        // Monta a janela em tela;
607        searchE.prototype.showWindow = function(div){
608                if(!this.searchW[div.id]) {
609                        div.style.width = "660px";
610                        div.style.height = "255px";
611                        div.style.visibility = "hidden";
612                        div.style.position = "absolute";
613                        div.style.zIndex = "10003";                     
614                        var title = ":: "+ get_lang("Search")+" ::";
615                        var wHeight = div.offsetHeight + "px";
616                        var wWidth =  div.offsetWidth   + "px";
617                       
618                        win = new dJSWin({                     
619                                id: 'ccList'+div.id,
620                                content_id: div.id,
621                                width: wWidth,
622                                height: wHeight,
623                                title_color: '#3978d6',
624                                bg_color: '#eee',
625                                title: title,                                           
626                                title_text_color: 'white',
627                                button_y_img: '../phpgwapi/images/win_min.gif',
628                                button_x_img: '../phpgwapi/images/winclose.gif',
629                                border: true });
630                        this.searchW[div.id] = win;
631                        win.draw();
632                }else{
633                        var _this = this;
634                        win = this.searchW[div.id];
635                        if((_this.type == "close" && win.state == 0) || win.state == 2){EsearchE.func_clean();}
636                        win.draw();
637                }
638                win.open();     
639        }
640// Cria o objeto
641        var EsearchE;
642        EsearchE = new searchE();
Note: See TracBrowser for help on using the repository browser.