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

Revision 1339, 28.2 KB checked in by amuller, 15 years ago (diff)

Ticket #605 - reverte modificação que criou problema na busca

  • Property svn:eol-style set to native
  • Property svn:executable set to *
RevLine 
[2]1/**************************************************************************\
2 Início
3\**************************************************************************/
[832]4        function searchE()
5        {
[2]6                this.searchW   = new Array;
7                this.name_box_search = "";
8                this.all_boxes = new Array;
9                this.type = "";
10                this.fields = new Array("_ass","_de","_body","_para","_cc","_cco");
11        }
12       
13        //Monta os forms dentro da janela;
14        searchE.prototype.showForms = function(value){
15                // Principal
16                if(!Element("window_search")) {
17                        var form_search = document.createElement("DIV");
18                        form_search.style.visibility = 'hidden';
19                        form_search.style.top = '0px';
20                        form_search.style.left = '0px';
21                        form_search.id = "window_search";
22                        document.body.appendChild(form_search);                 
23                }
24               
25                // Pesquisa
26                if(!Element("div_form_search")){
27                        var div_form_search = document.createElement("DIV");
28                        div_form_search.id = "div_form_search";
29                        div_form_search.style.position = "absolute";
30                        div_form_search.style.left = "10px";
31                        div_form_search.style.top  = "10px";
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);
[156]41                        form_search.appendChild(div_form_search);
[2]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";
[67]53                                div_button_search.innerHTML = "<table border='0' width='50%' cellpadding='0' cellspacing='0' align='right'>"+
[2]54                                                                                          "<tr>"+
55                                                                                          "<td><input type='button' value=" + get_lang('Search') + " onclick='EsearchE.func_search()'></td>"+
[53]56                                                                                          "<td><input type='button' value=" + get_lang('Clean') + " onclick='EsearchE.func_clean()'></td>"+
[69]57                                                                                          "<td><input type='button' value=" + get_lang('Close') + " onclick='EsearchE.func_close(\"hidden\")'></td>"+
[2]58                                                                                          "</tr>"+
59                                                                                          "</table>";
60                                form_search.appendChild(div_button_search);
61                }
62               
63                if(!Element("table_layer")){
[67]64                        var table_layer    = "";
[2]65                }
66               
[67]67                if(value == "")
[69]68                        EsearchE.showWindow(Element("window_search"));
69       
[2]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>"+
[53]87                                                     "<td colspan='2'><b>" + get_lang('Inform your search in the text fields') + " :</b></td>"+
[2]88                                                     "<td rowspan='7'>&nbsp"+
89                                                     "</td>"+
90                                                     "<td rowspan='8'>"+
91                                                     "<table border='0' cellpading='0' cellspacing='0'>"+
92                                                     "<tr>"+
[61]93                                                     "<td colspan='3' valign='top'>&nbsp;<b>" + get_lang('Search the messages in these folders') + " :</b></td>"+
[2]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>"+
[832]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>"+
[2]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
[69]137                if( Element("div_folders_search") == null){
[2]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 = "";
[69]148                                var dest_div = Element("folders");
[2]149                                dest_div.appendChild(div_folders);
150                }               
151                ttree.make_tree(folders,"div_folders_search","_folders_tree_search","","","","");
152        }
153       
[156]154        //This func returns the most recent date
155        function date_comp(a,b)
156        {
[645]157                var data1 = a.match(/\d{2}\/\d{2}\/\d{4}--\d+? \w*b--.*--\d*$/g);
[156]158                data1 = data1[0].substr(0, data1[0].indexOf('--'))
159                with ( data1 )
160                        data1 = Date.UTC(substr(6), substr(3, 2), substr(0, 2));
[645]161                var data2 = b.match(/\d{2}\/\d{2}\/\d{4}--\d+? \w*b--.*--\d*$/g);
[156]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        }
[832]167        function date_comp_reverse(a,b)
168        {
169                return date_comp(b,a);
170        }
[156]171       
172        function box_comp(a,b)
173        {
174        var compare = [];
175        compare[0] = a.substr(0, a.indexOf('--'));
176        compare[0] = compare[0].toLowerCase();
177        var temp=compare[0];
178        compare[1] = b.substr(0, b.indexOf('--'))
179        compare[1] = compare[1].toLowerCase();
180        compare.sort();
181        if (temp != compare[0])
182                return +1;
183        else
184                return -1;
185        }
[832]186        function box_comp_reverse(a,b)
187        {
188                return box_comp(b,a);
189        }
[156]190
191        function who_comp(a,b)
192        {
193        var compare = [];
194        compare[0] = a.substr(a.indexOf('--')+2);
195        compare[0] = compare[0].toLowerCase();
196        var temp=compare[0];
197        compare[1] = b.substr(b.indexOf('--')+2);
198        compare[1] = compare[1].toLowerCase();
199        compare.sort();
200        if (temp != compare[0])
201                return +1;
202        else
203                return -1;
204        }
[832]205        function who_comp_reverse(a,b)
206        {
207                return who_comp(b,a);
208        }
[156]209
210        function subject_comp(a,b)
211        {
212        var compare = [];
213        compare[0] = a.substr(a.indexOf('--')+2);
214        compare[0] = compare[0].substr(compare[0].indexOf('--')+2);
215        compare[0] = compare[0].toLowerCase();
216        var temp=compare[0];
217        compare[1] = b.substr(b.indexOf('--')+2);
218        compare[1] = compare[1].substr(compare[1].indexOf('--')+2);
219        compare[1] = compare[1].toLowerCase();
220        compare.sort();
221        if (temp != compare[0])
222                return +1;
223        else
224                return -1;
225        }
[832]226        function subject_comp_reverse(a,b)
227        {
228                return subject_comp(b,a);
229        }
[156]230
231        function size_comp(a,b)
232        {
[645]233                var data1 = a.match(/\d{2}\/\d{2}\/\d{4}--\d+? \w*b--.*--\d*$/g);
[156]234                data1 = data1[0].substr(data1[0].indexOf('--')+2)
235                data1 = data1.substr(0,data1.indexOf('--'))
236                var size_a = parseInt(data1.substr(0,data1.indexOf(' ')));
237                if (data1.match("k"))
238                        size_a = size_a * 1024;
239                else
240                        if (data1.match("m"))
241                                size_a = size_a * 1048576;
[645]242                var data2 = b.match(/\d{2}\/\d{2}\/\d{4}--\d+? \w*b--.*--\d*$/g);
[156]243                data2 = data2[0].substr(data2[0].indexOf('--')+2)
244                data2 = data2.substr(0,data2.indexOf('--'))
245                var size_b = parseInt(data2.substr(0,data2.indexOf(' ')));
246                if (data2.match("k"))
247                        size_b = size_b * 1024;
248                else
249                        if (data2.match("m"))
250                                size_b = size_b * 1048576;
251                return size_b - size_a;
252        }
[832]253        function size_comp_reverse(a,b)
254        {
255                return size_comp(b,a);
256        }
[156]257
[832]258        // Form resultado
[156]259        searchE.prototype.mount_result = function(data,sort_type){
[2]260                var nw_array = new Array;
[156]261                var var_tmp = data.substr(2, data.length - 4);
262                var_tmp  = var_tmp.split("####");
[2]263                var cont = parseInt(0);
[645]264                switch (sort_type)
265                {
266                        case 'SORTDATE':
267                                var_tmp.sort(date_comp);
268                                break;
[832]269                        case 'SORTDATE_REVERSE':
270                                var_tmp.sort(date_comp_reverse);
271                                break;
[645]272                        case 'SORTBOX':
273                                var_tmp.sort(box_comp);
274                                break;
[832]275                        case 'SORTBOX_REVERSE':
276                                var_tmp.sort(box_comp_reverse);
277                                break;
[645]278                        case 'SORTSUBJECT':
279                                var_tmp.sort(subject_comp);
280                                break;
[832]281                        case 'SORTSUBJECT_REVERSE':
282                                var_tmp.sort(subject_comp_reverse);
283                                break;
[645]284                        case 'SORTWHO':
285                                var_tmp.sort(who_comp);
286                                break;
[832]287                        case 'SORTWHO_REVERSE':
288                                var_tmp.sort(who_comp_reverse);
289                                break;
[645]290                        case 'SORTSIZE':
291                                var_tmp.sort(size_comp);
292                                break;
[832]293                        case 'SORTSIZE_REVERSE':
294                                var_tmp.sort(size_comp_reverse);
295                                break;
[645]296                        default:
297                                var showMsg = 1;
298                }
299
[2]300                for(var i=0; i < var_tmp.length; i++){
[645]301                        if(var_tmp[i] != "")
302                        {
[2]303                                nw_array[cont] = var_tmp[i];
304                                cont++;
305                        }
306                }
[645]307                if(nw_array.length > 0 && showMsg)
308                        write_msg(nw_array.length + " "+ get_lang('results found'));
[320]309                numBox++;
310                var border_id = create_border(get_lang("Search Results"), "search_" + numBox);
[832]311                currentTab = border_id;
312                openTab.type[currentTab] = 1;
[2]313                var table = document.createElement("TABLE");
[320]314                table.id    = "table_resultsearch_" + numBox;
[271]315                table.frame = "void";
316                table.rules = "rows";
317                table.cellPadding = "0";
318                table.cellSpacing = "0";
[667]319                table.className = "table_box";
[72]320
[2]321                var tbody = document.createElement("TBODY");
[832]322                tbody.id    = "tbody_box_" + numBox;
323
[2]324                for( var i=0; i < nw_array.length; i++){
325                        var tr = document.createElement("TR");
[645]326                        tr.style.height = preferences.line_height;
[2]327
[645]328                        if (nw_array[i].match(/.*--.*--\w*--\d{2}\/\d{2}\/\d{4}--\d+? \w*b--.*--\d*$/g) != null) //subject with "--"
[69]329                        {
[645]330                                var aux1 = nw_array[i].match(/\d{2}\/\d{2}\/\d{4}--\d+? \w*b--.*--\d*$/g);
[69]331                                aux1 = aux1[0].split("--");
332                                nw_array[i] = nw_array[i].substr(0, nw_array[i].indexOf(aux1[0])-2);
333                                var aux = [];
334                                aux[0] = nw_array[i].substr(0, nw_array[i].indexOf('--'));
335                                nw_array[i] = nw_array[i].substr(nw_array[i].indexOf('--')+2);
336                                aux[1] = nw_array[i].substr(0, nw_array[i].indexOf('--'));
337                                aux[2] = nw_array[i].substr(nw_array[i].indexOf('--')+2);
338                                aux = aux.concat(aux1);
339                        }
340                        else
341                        {
[832]342                                var aux = nw_array[i].split("--");
[69]343                        }
[1339]344
345                        var mailbox = aux[0];
346                        var uid_msg = aux[6];
[645]347                        var subject = aux[2];
348                        tr.id = uid_msg;
[1339]349
350                        // Keep the two lines together please
351                        tr.setAttribute('name',mailbox);
352                        tr.name = mailbox;
353
354                        if (aux[5].match("U"))
[976]355                                add_className(tr,'tr_msg_unread');
356                        add_className(tr, i%2 != 0 ? 'tr_msg_read2' : 'tr_msg_read');
[1000]357            var _onclick = function () { proxy_mensagens.get_msg(this.parentNode.id,url_encode(this.parentNode.getAttribute('name')),false,show_msg);};
358            for(var j=0 ; j < 10 ; j++)
[645]359                        {
[832]360                                var td = document.createElement("TD");
[645]361                                if (j == 0)
362                                {
363                                        td.style.width = "1%";
364                                        var td1 = '<input type="checkbox" id="check_box_message_'+uid_msg+'"></input>';
[976]365                                       
[645]366                                }
367                                if (j == 1)
368                                {
369                                        td.style.width = "2%";
[1339]370                                        if (aux[5].match('T'))
[832]371                                        {
[1339]372                                                attachNum = parseInt(aux[5].substr(aux[5].indexOf('T')+1));
[832]373                                                td1 = "<img src='templates/"+template+"/images/clip.gif' title='"+attachNum +' '+ get_lang('attachment(s)')+"'>";
374                                        }
375                                        else
376                                                td1 = '';
[645]377                                }
378                                if (j == 2)
379                                {
380                                        td.style.width = "1%";
381                                        td.id = "td_message_answered_"+uid_msg;
[1339]382                                        if (aux[5].match('X'))
[832]383                                                td1 = '<img src=templates/'+template+'/images/forwarded.gif title=Forwarded>';
384                                        else
[1339]385                                                if (aux[5].match('A'))
[832]386                                                        td1 = '<img src=templates/'+template+'/images/answered.gif>';
387                                                else
388                                                        td1 = '';
[645]389                                }
390                                if (j == 3)
391                                {
392                                        td.style.width = "1%";
393                                        td.id = "td_message_important_"+uid_msg;
[1339]394                                        if (aux[5].match("F"))
[832]395                                        {
[976]396                                                add_className(tr, 'flagged_msg');
397                                                td.style.background = "url(templates/"+template+"/images/important.gif) no-repeat center";
[832]398                                        }
399                                        else
400                                                td1 = '';
[645]401                                }
402                                if (j == 4)
403                                {
404                                        td.style.width = "1%";
405                                        td.id = "td_message_sent_"+uid_msg;
406                                        td1 = '';
407                                }
408                                if (j == 5)
409                                {
[1339]410                                        td.style.width = "14%";
[832]411                                        td.onclick = _onclick;
[645]412                                        var nm_box = aux[0].split(cyrus_delimiter);
413                                        var td1 = nm_box.pop();
414                                        td.setAttribute("NoWrap","true");
415                                        td.style.overflow = "hidden";
416                                        td.style.color = "#42795b";
417                                        td.style.fontWeight = "bold";
[1339]418
419                                        if(td1 == "INBOX"){
420                                                var td1  = get_lang("Inbox");
[2]421                                        }
[832]422
423                                        if(proxy_mensagens.is_local_folder(td1)) {
424                                                var td1 = this.aux_local_folder_display(td1);
[689]425                                        }
[645]426                                }
427                                if( j == 6)
428                                {
[1339]429                                        if (aux[1].length > 29)
430                                                aux[1] = aux[1].substr(0,29) + "...";
[832]431                                        td.style.width = "20%";
432                                        td.onclick = _onclick;
433                                        td.setAttribute("NoWrap","true");
434                                        td.style.overflow = "hidden";
[645]435                                        var td1  =  '<div style="width:100%;overflow:hidden">'+aux[1]+"</div>";
436                                }
437                                if( j == 7)
438                                {
439                                        var subject_encode = url_encode(subject);
440                                        if (! subject_encode)
441                                                aux[2] = get_lang("no subject") + "...";
[1339]442                                        if (aux[2].length > 70)
[832]443                                                aux[2] = aux[2].substr(0,70) + "...";
444                                        td.style.width = "35%";
445                                        td.onclick = _onclick;
446                                        td.setAttribute("NoWrap","true");
447                                        td.style.overflow = "hidden";
[1339]448                                        var td1  = aux[2];
[67]449
[2]450                                }
[645]451                                if( j == 8)
452                                {
[832]453                                        td.style.width = "15%";
[645]454                                        td.align = "center";
[832]455                                        td.onclick = _onclick;
[1339]456                                        var td1  = aux[3];
[645]457                                }
458                                if( j == 9)
459                                {
460                                        td.style.width = "10%";
461                                        td.align = "center";
[832]462                                        td.onclick = _onclick;
[1339]463                                        var td1  = aux[4];
[645]464                                }
465                                if (j == 10)
466                                {
[1339]467                                        if (aux[5].match("U"))
[976]468                                                add_className(tr, 'tr_msg_unread');
[1339]469                                        if (aux[5].match("F"))
[976]470                                                add_className(tr, 'flagged_msg');
[645]471                                        var td1 = '';
472                                }
473                                td.innerHTML = td1;
474                                tr.appendChild(td);
[2]475                        }
[569]476                        aux.splice(0,(aux.length));
[271]477
[1339]478                _dragArea.makeDragged(tr, uid_msg, subject, true, mailbox);
[271]479                tbody.appendChild(tr);
[2]480                }
481                table.appendChild(tbody);
[832]482
483        var content_search =  Element('content_id_search_' + numBox);
[163]484        // BEGIN MAKE THE SCROLL HEIGHT         
[832]485        var defaultWidth = document.body.offsetWidth - 31;
[163]486        var menuHidden = Element("folderscol").style.display == 'none' ? true : false;
487        if(!menuHidden)
488                defaultWidth -= Element("folderscol").offsetWidth;                     
489        var bar = Element("toolbar");
490        var offset = 0;
491        if(bar.style.visibility != 'hidden')
492                offset = bar.offsetHeight ? bar.offsetHeight :  bar.clientHeight;               
493        var div_scroll_result = document.createElement("DIV");
[320]494        div_scroll_result.id = "divScrollMain_"+numBox;
[163]495        div_scroll_result.style.height = document.body.clientHeight - offset - 120;
496        content_search.style.height = document.body.clientHeight - offset - 80;
497        div_scroll_result.style.overflow = "auto";
498        div_scroll_result.style.width = defaultWidth - (is_ie ? 7 : 0);
499        // END MAKE THE SCROLL HEIGHT           
500               
501       
[67]502                if(is_ie)
[72]503                        Element("border_table").width = "99.5%";
[67]504               
[832]505                // Put header
[67]506                var table_element = document.createElement("TABLE");
507                var tbody_element = document.createElement("TBODY");
508                table_element.setAttribute("id", "table_message_header_box");
509                table_element.className = "table_message_header_box";
510                tr_element = document.createElement("TR");
511                tr_element.className = "message_header";
[156]512                td_element0 = document.createElement("TD");
[1339]513                td_element0.setAttribute("width", "1%");
[156]514                chk_box_element = document.createElement("INPUT");
515                chk_box_element.id  = "chk_box_select_all_messages";
516                chk_box_element.setAttribute("type", "checkbox");
517                chk_box_element.className = "checkbox";
[163]518                chk_box_element.onclick = function(){select_all_search_messages(this.checked,content_search.id);};
[156]519                chk_box_element.onmouseover = function () {this.title=get_lang('Select all messages.')};
520                chk_box_element.onkeydown = function (e){
521                        if (is_ie)
522                        {
523                                if ((window.event.keyCode) == 46)
[832]524                                        delete_msgs(current_folder,'selected','null');
[156]525                        }
526                        else
527                        {
528                                if ((e.keyCode) == 46)
[832]529                                        delete_msgs(current_folder,'selected','null');
[156]530                        }
531                };
532               
533                td_element0.appendChild(chk_box_element);
[67]534                td_element1 = document.createElement("TD");
[163]535                td_element1.setAttribute("width", "20%");
[67]536                td_element1.align = "left";
[832]537                if (sort_type == 'SORTBOX')
538                {
539                        td_element1.onclick = function () { EsearchE.mount_result(data,'SORTBOX_REVERSE'); delete_border(border_id,false);};
540                        td_element1.innerHTML ="<b>"+get_lang("Folder")+"</b><img src='templates/"+template+"/images/arrow_descendant.gif'>";
541                }
542                else
543                {
544                        td_element1.onclick = function () { EsearchE.mount_result(data,'SORTBOX'); delete_border(border_id,false);};
545                        if  (sort_type == 'SORTBOX_REVERSE')
546                                td_element1.innerHTML ="<b>"+get_lang("Folder")+"</b><img src='templates/"+template+"/images/arrow_ascendant.gif'>";
547                        else
548                                td_element1.innerHTML = get_lang("Folder");
549                }
[67]550                td_element2 = document.createElement("TD");
[73]551                td_element2.setAttribute("width", "20%");
[67]552                td_element2.align = "left";
[832]553                if (sort_type == 'SORTWHO')
554                {
555                        td_element2.onclick = function () { EsearchE.mount_result(data,'SORTWHO_REVERSE'); delete_border(border_id,false);};
556                        td_element2.innerHTML ="<b>"+get_lang("who")+"</b><img src='templates/"+template+"/images/arrow_descendant.gif'>";
557                }
558                else
559                {
560                        td_element2.onclick = function () { EsearchE.mount_result(data,'SORTWHO'); delete_border(border_id,false);};
561                        if  (sort_type == 'SORTWHO_REVERSE')
562                                td_element2.innerHTML ="<b>"+get_lang("who")+"</b><img src='templates/"+template+"/images/arrow_ascendant.gif'>";
563                        else
564                                td_element2.innerHTML = get_lang("who");
565                }
[67]566                td_element3 = document.createElement("TD");
[645]567                td_element3.setAttribute("width", "35%");
[67]568                td_element3.align = "left";
[832]569                if (sort_type == 'SORTSUBJECT')
570                {
571                        td_element3.onclick = function () { EsearchE.mount_result(data,'SORTSUBJECT_REVERSE'); delete_border(border_id,false);};
572                        td_element3.innerHTML ="<b>"+get_lang("subject")+"</b><img src='templates/"+template+"/images/arrow_descendant.gif'>";
573                }
574                else
575                {
576                        td_element3.onclick = function () { EsearchE.mount_result(data,'SORTSUBJECT'); delete_border(border_id,false);};
577                        if  (sort_type == 'SORTSUBJECT_REVERSE')
578                                td_element3.innerHTML ="<b>"+get_lang("subject")+"</b><img src='templates/"+template+"/images/arrow_ascendant.gif'>";
579                        else
580                                td_element3.innerHTML = get_lang("subject");
581                }
[67]582                td_element4 = document.createElement("TD");
[645]583                td_element4.setAttribute("width", "15%");
[67]584                td_element4.align = "center";
[832]585                if (sort_type == 'SORTDATE')
586                {
587                        td_element4.onclick = function () { EsearchE.mount_result(data,'SORTDATE_REVERSE'); delete_border(border_id,false);};
588                        td_element4.innerHTML ="<b>"+get_lang("Date")+"</b><img src='templates/"+template+"/images/arrow_descendant.gif'>";
589                }
590                else
591                {
592                        td_element4.onclick = function () { EsearchE.mount_result(data,'SORTDATE'); delete_border(border_id,false);};
593                        if  (sort_type == 'SORTDATE_REVERSE')
594                                td_element4.innerHTML ="<b>"+get_lang("Date")+"</b><img src='templates/"+template+"/images/arrow_ascendant.gif'>";
595                        else
596                                td_element4.innerHTML = get_lang("Date");
597                }
[67]598                td_element5 = document.createElement("TD");
[645]599                td_element5.setAttribute("width", "10%");
[72]600                td_element5.align = "center";
[832]601                if (sort_type == 'SORTSIZE')
602                {
603                        td_element5.onclick = function () { EsearchE.mount_result(data,'SORTSIZE_REVERSE'); delete_border(border_id,false);};
604                        td_element5.innerHTML ="<b>"+get_lang("size")+"</b><img src='templates/"+template+"/images/arrow_descendant.gif'>";
605                }
606                else
607                {
608                        td_element5.onclick = function () { EsearchE.mount_result(data,'SORTSIZE'); delete_border(border_id,false);};
609                        if  (sort_type == 'SORTSIZE_REVERSE')
610                                td_element5.innerHTML ="<b>"+get_lang("size")+"</b><img src='templates/"+template+"/images/arrow_ascendant.gif'>";
611                        else
612                                td_element5.innerHTML = get_lang("Size");
613                }
[156]614                tr_element.appendChild(td_element0);
[67]615                tr_element.appendChild(td_element1);
616                tr_element.appendChild(td_element2);
617                tr_element.appendChild(td_element3);
618                tr_element.appendChild(td_element4);
619                tr_element.appendChild(td_element5);
620                tbody_element.appendChild(tr_element);
621                table_element.appendChild(tbody_element);
[163]622                content_search.appendChild(table_element);
[1121]623                /*end of "put header"*/
624               
625                if (!expresso_offline) {
[1294]626/*                      var span_options = document.createElement("SPAN");
[1121]627                        if (span_options)
628                                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> | ' +
629                                '<span title="' +
630                                get_lang("Move") +
631                                '" class="message_options" onclick=wfolders.makeWindowNew(\"' +
632                                content_search.id +
633                                '\",\"move_to\",true)>' +
634                                get_lang("Move") +
[1294]635                                '</span>';*/
[1121]636                        div_scroll_result.appendChild(table);
637                        content_search.appendChild(div_scroll_result);
[1294]638                        /*if (span_options)
639                                content_search.appendChild(span_options);*/
[1121]640                }
641                else {
642                        div_scroll_result.appendChild(table);
643                        content_search.appendChild(div_scroll_result);
644                }
[2]645        }
646
[1339]647        searchE.prototype.open_msg = function(mailbox, uid_msg, subject){
[2]648                var handler_get_msg = function(data){
649                        if(Element("border_id_" + uid_msg + "_r")){alert(get_lang("This message is already opened!"));}
650                        else{draw_message(data,create_border(url_decode(subject), uid_msg + "_r"));}
[673]651                        //set_msg_as_read(msgs_to_set[i], false);
[2]652                }
[1339]653                proxy_mensagens.get_msg(uid_msg,mailbox,false,handler_get_msg);
[689]654                /*var args   = "$this.imap_functions.get_info_msg";
655                var params = "msg_number=" + uid_msg + "&msg_folder=" + mailbox;
656                cExecute(args,handler_get_msg,params);*/
[2]657
658        }
659
660        // Adiciona caixas postais na busca;
661        searchE.prototype.add_mailboxes = function(){
[69]662                var sel = Element("sel_search_nm_box1");
[689]663                if (!proxy_mensagens.is_local_folder(this.name_box_search)) {
664                        var name_box     = this.name_box_search.split(cyrus_delimiter);
665                        if(this.name_box_search == "")
666                                return false;
667                        var name_box_def = "";
668                        if(name_box.length != 1){
669                                name_box_def = name_box[(name_box.length-1)];
670                        }else{
671                                name_box_def = get_lang("Inbox");               
672                        }
[2]673                }
[689]674                else {
675                        if(this.name_box_search=='local_root')
676                                return;
677                        if(this.name_box_search=='local_Inbox')
678                                name_box_def = get_lang("Inbox");
679                        else
680                                name_box_def = this.name_box_search.substr(6);//Retira o 'local_'
681                }
[2]682                if( sel.length > 0){
683                        for(var i=0; i < sel.options.length; i++){
684                                if(sel.options[i].value == this.name_box_search){
685                                        alert(get_lang('This message is already selected!'));
686                                        return false;
687                                }
688                        }
689                }
[96]690                var opt = new Option(lang_folder(name_box_def),this.name_box_search,false,true);
[2]691                sel[sel.length] = opt;
692        }
693        // Remove as caixas postais na busca;
694        searchE.prototype.del_mailboxes = function(){
[69]695                var sel = Element("sel_search_nm_box1");
[2]696                if(sel.length > 0){
697                        for(var i=0; i < sel.options.length; i++){
698                                if(sel.options[i].selected == true){
699                                        sel.options[i] = null;
700                                        i--;
701                                }
702                        }
703                }
704       
705        }
706        // todas as caixas
707        searchE.prototype.all_mailboxes = function(){
[69]708                var value = Element("check_all_msg").checked;
[2]709                var cont = parseInt(0);
710                if(value){
711                        if(EsearchE.all_boxes.length > 0){
712                                EsearchE.all_boxes.splice(0,(EsearchE.all_boxes.length));                       
713                        }
714                        for(var i=0; i < folders.length; i++){
715                                EsearchE.all_boxes[cont] = folders[i].folder_id;
716                                cont++;
717                        }
718                }else{
719                        EsearchE.all_boxes.splice(0,(EsearchE.all_boxes.length));
720                }
721        }
722
723        // Search;
724        searchE.prototype.func_search = function(value){
725                var fields = "##";
726                        // Verifica se os campos estão preenchidos;
[69]727                        if(trim(Element("txt_ass").value) != ""){
[372]728                                fields += "SUBJECT " +  "<=>" +url_encode(Element("txt_ass").value) + "##";
[2]729                        }
[69]730                        if(trim(Element("txt_body").value) != ""){
[372]731                                fields += "BODY " + "<=>" + url_encode(Element("txt_body").value) + "##";
[2]732                        }
[69]733                        if(trim(Element("txt_de").value) != ""){
[372]734                                fields += "FROM " + "<=>" + url_encode(Element("txt_de").value) + "##";
[2]735                        }
[69]736                        if(trim(Element("txt_para").value) != ""){
[372]737                                fields += "TO " + "<=>" + url_encode(Element("txt_para").value) + "##";
[2]738                        }
[69]739                        if(trim(Element("txt_cc").value) != ""){
[372]740                                fields += "CC " + "<=>" + url_encode(Element("txt_cc").value) + "##";
[2]741                        }
742                        if(value) {
[372]743                                fields = "##ALL " +  "<=>" +url_encode(value) + "##";
[2]744                        }
[69]745
[372]746                if(fields == "##"){
[128]747                        alert(get_lang("Define some search parameters!"));
[2]748                        return false;
749                }
[689]750                var local_folders = new Array();
751                var temp;
[2]752               
[69]753                if(Element("check_all_msg").checked){
[689]754                        this.all_mailboxes();
[2]755                        var nm_box = new Array;
756                        for(var i=0; i < EsearchE.all_boxes.length; i++){
757                                nm_box[i] = EsearchE.all_boxes[i] + fields;
758                        }
[689]759                        if (preferences.use_local_messages == 1) {
760                                temp = expresso_local_messages.list_local_folders();
761                                for (var x in temp) {
762                                        local_folders.push(temp[x][0]);
763                                }
764                        }
[2]765                }else{
766                        var nm_box = new Array;
[69]767                        var sel_combo = Element("sel_search_nm_box1");
[2]768                        if( sel_combo.options.length <= 0){
[118]769                                alert(get_lang("Define the boxes to search!"));
[2]770                                return false;
771                        }
772                       
773                        for(var i=0; i < sel_combo.options.length; i++){
774                                sel_combo.options[i].selected = true;
775                        }
776                        for(var i=0; i < sel_combo.options.length; i++){
777                                if(sel_combo.options[i].selected == true){
[689]778                                        if(!proxy_mensagens.is_local_folder(sel_combo.options[i].value))
779                                                nm_box[nm_box.length] = sel_combo.options[i].value + fields;
780                                        else
781                                                local_folders.push(sel_combo.options[i].value.substr(6));
[2]782                                }
783                        }
784                }
785                var handler = function(data){
[689]786                        var tmp;
787                        var countTmp= new Array();
788                        if (local_folders.length > 0) {
789                                tmp = expresso_local_messages.search(local_folders, fields);
790                                if (tmp!=false) {
791                                        var tmp2 = tmp.substr(2, data.length - 4);
792                                        countTmp = tmp.split('####');
793                                }
794                        }
795                        if((data == "none") && (countTmp.length==0)){alert(get_lang("None result was found."));}
796                        else if(countTmp.length > 50){alert(get_lang("More than %1 results. Please, try to refine your search.",50));}
[2]797                        else if(data == "many results"){alert(get_lang("More than %1 results. Please, try to refine your search.",50));}
[689]798                        else{EsearchE.mount_result((data=='none')?tmp:(countTmp.length==0)?data:data+tmp);}
[2]799                }
800                var args   = "$this.imap_functions.search_msg";
801                var params = "condition=" + nm_box;
[1121]802                if(expresso_offline)
803                        handler('none');
804                else
805                        cExecute(args,handler,params);
[2]806        }
807        // clean;
808        searchE.prototype.func_clean = function(){
809                // Limpa os campos;
810                for(var i=0; i < this.fields.length; i++){
811                        if(Element("txt" + this.fields[i]) != null){Element("txt" + this.fields[i]).value = "";}
[832]812                }
[2]813            if(Element("check_all_msg") != null){Element("check_all_msg").checked = false;}
814
815            EsearchE.all_boxes.splice(0,(EsearchE.all_boxes.length));
[75]816                EsearchE.del_mailboxes();
[69]817        }
[2]818
819        // close
820        searchE.prototype.func_close = function(type){
821                var _this = this;
822                _this.name_box_search = "";
823                EsearchE.all_boxes.splice(0,(EsearchE.all_boxes.length));
824                _this.type = type;
825                _this.searchW['window_search'].close();
826        }
827        // Monta a janela em tela;
828        searchE.prototype.showWindow = function(div){
829                if(!this.searchW[div.id]) {
830                        div.style.width = "660px";
[67]831                        div.style.height = "255px";
[2]832                        div.style.visibility = "hidden";
833                        div.style.position = "absolute";
[832]834                        div.style.zIndex = "10003";
[128]835                        var title = ":: "+ get_lang("Search")+" ::";
[2]836                        var wHeight = div.offsetHeight + "px";
837                        var wWidth =  div.offsetWidth   + "px";
[832]838
839                        win = new dJSWin({
[2]840                                id: 'ccList'+div.id,
841                                content_id: div.id,
842                                width: wWidth,
843                                height: wHeight,
844                                title_color: '#3978d6',
845                                bg_color: '#eee',
[832]846                                title: title,
[2]847                                title_text_color: 'white',
848                                button_y_img: '../phpgwapi/images/win_min.gif',
849                                button_x_img: '../phpgwapi/images/winclose.gif',
850                                border: true });
851                        this.searchW[div.id] = win;
852                        win.draw();
853                }else{
854                        var _this = this;
855                        win = this.searchW[div.id];
856                        if((_this.type == "close" && win.state == 0) || win.state == 2){EsearchE.func_clean();}
857                        win.draw();
858                }
859                win.open();     
860        }
[689]861       
862        searchE.prototype.aux_local_folder_display = function(folder) {
[1121]863                if(!expresso_offline)
864                        return "(Local) " + lang_folder(folder.substr(6));
865                else
866                        return lang_folder(folder.substr(6));
[689]867        }
868       
[2]869// Cria o objeto
870        var EsearchE;
[569]871        EsearchE = new searchE();
Note: See TracBrowser for help on using the repository browser.