source: trunk/expressoMail1_2/js/QuickCatalogSearch.js @ 5075

Revision 5075, 51.2 KB checked in by airton, 13 years ago (diff)

Ticket #2267 - Exibir mais detalhes dos contatos retornados na busca rapida de destinatarios

  • Property svn:eol-style set to native
  • Property svn:executable set to *
Line 
1        function emQuickCatalogSearch ()
2        {
3                this.arrayWin = new Array();
4                this.el;
5                this.cc_contacts = new Array();
6                this.cc_groups  = new Array();
7        }
8       
9        emQuickCatalogSearch.prototype.showList = function(data, begin, end, ID, field)
10        {
11                        data_    = data;       
12                        id_    = ID;
13            field_ = field;
14            begin_ = begin;
15            end_   = end;
16
17                        keypress_read(data);
18            init_results(data);
19            configure_slider(data);
20            details_results(data);
21                       
22                    connector.loadScript("ccQuickAdd");
23
24            if(preferences.use_shortcuts == '0'){
25                connector.loadScript("shortcut");
26            }
27               
28                id = '1';
29                _this = this;
30        var el_A = document.createElement("DIV");
31                el_A.style.visibility = "hidden";
32                el_A.style.position = "absolute";
33                el_A.style.left = "0px";
34                el_A.style.top = "0px";
35                el_A.style.width = "0px";
36                el_A.style.height = "0px";
37                el_A.id = 'window_QuickCatalogSearch_A';
38                document.body.appendChild(el_A);
39                el_A.innerHTML = "";           
40               
41                func_add_contact = function () {       
42                };             
43               
44        _this.showWindow(el_A);
45        }
46       
47       
48    function keypress_read(data)
49        {
50                $("#dialog-modal").keypress(function (e)
51                {
52                        var keyCode = e.keyCode || e.which,
53                        arrow = {left: 37, up: 38, right: 39, down: 40, enter: 13, esc: 27 };
54                        var slider = $( "#slider"  );
55                        switch (keyCode)
56                        {
57                                case arrow.enter:
58                                        add_contact_field(document.getElementsByClassName("ui-selected")[0].getElementsByClassName("name_contact")[0].innerHTML);
59                                        $("#dialog-modal").dialog("close");
60                                        break;
61                               
62                                case arrow.left:
63                                        slider.slider( "value", $( "#slider" ).slider( "value" ) - 1);
64                                        create_list(data_);                                     
65                                        break;
66                               
67                                case arrow.right:
68                                        if( (($( "#slider" ).slider( "value" ))) == Math.ceil(data_.length/7) )
69                                        {
70                                                alert("Não há mais páginas");
71                                                break;
72                                        }
73                                        slider.slider( "value", $( "#slider" ).slider( "value" ) + 1);                                 
74                                        create_list(data_);                                             
75                                        break;
76                               
77                                case arrow.up:
78                                        id_contact = document.getElementsByClassName("ui-selected")[0].value;
79                                        if(id_contact == (($( "#slider" ).slider( "value" ) -1)*7))
80                                                break;
81                                        var line_contact = $('li.ui-selected');
82                                        $('li.ui-selected').prev().removeClass("ui-selectee").addClass("ui-selected"); //css('background-color', '#72A9D3');
83                                        line_contact.removeClass("ui-selected").addClass("ui-selectee");
84                                        var details = $("#detalhes_contato").empty();                                 
85                                                $( ".ui-selected", this ).each(function() {
86                            if(data_['type_catalog'] == 'G')
87                            {                                         
88                                var extra_fields = (data_['extra_ldap_fields']).split("#");   
89                                /* Default fields */
90                                details.append("<strong>" + utf8_decoder(data_[this.value].cn[0]));
91                                details.append("<br />" + data_[this.value].mail[0]);
92                                details.append("<br /><br /><strong>Matrícula<br />");
93                                details.append(data_[this.value].employeenumber[0] + "<br />");
94                                details.append("<br /><strong> Telefone <br />");
95                                details.append(data_[this.value].telephonenumber[0] + "<br />");
96                                details.append(data_[this.value].telephonenumber[0]);
97                                for (var i=0; i<extra_fields.length-1; i++)
98                                {
99                                    var campo = extra_fields[i].substr(extra_fields[i].indexOf("|")+1);   
100                                    var valor = extra_fields[i].substr(0, (extra_fields[i].indexOf("|")));                                         
101                                    if(data_[this.value][valor] != undefined)
102                                    {   
103                                        details.append("<br /><br /><strong>" + campo);
104                                        details.append("<br />" + data_[this.value][valor][0]);
105                                    }
106                                }
107                                                        }
108                            else
109                            {
110                                    if(data_['type_catalog'] == 'P')
111                                    {
112                                        /* Default fields */
113                                        details.append("<strong>" + utf8_decoder(data_[this.value].cn));
114                                        details.append("<br />" + data_[this.value].mail);
115                                        if(data_[this.value].telephonenumber != "")
116                                        {
117                                            details.append("<br /><br /><br /><strong> Telefone <br />");
118                                            details.append(data_[this.value].telephonenumber + "<br />"); 
119                                        }
120                                    }
121                                    else
122                                    {
123                                        var extra_fields = (data_['extra_ldap_fields']).split("#");   
124                                        /* Default fields */
125                                        details.append("<strong>" + utf8_decoder(data_[this.value].cn));
126                                        details.append("<br />" + data_[this.value].mail);
127                                        if(data_[this.value].telephonenumber != "")
128                                        {
129                                            details.append("<br /><br /><br /><strong> Telefone <br />");
130                                            details.append(data_[this.value].telephonenumber + "<br />"); 
131                                        }
132                                        if(data_[this.value].mail[0].length > 1)
133                                        {
134                                            for (var i=0; i<extra_fields.length-1; i++)
135                                            {
136                                                var campo = extra_fields[i].substr(extra_fields[i].indexOf("|")+1);   
137                                                var valor = extra_fields[i].substr(0, (extra_fields[i].indexOf("|")));                                         
138                                                if(data_[this.value][valor] != undefined)
139                                                {   
140                                                    details.append("<br /><br /><strong>" + campo);
141                                                    details.append("<br />" + data_[this.value][valor][0]);
142                                                }
143                                            }
144                                        }
145                                    }
146                            }
147                                                });
148                                        break;
149                               
150                                case arrow.down:
151                                        id_contact = document.getElementsByClassName("ui-selected")[0].value;
152                                        if((id_contact == (((((parseInt($( "#slider" ).slider( "value" )) - 1)*7))+7)-1)) || id_contact == data_.length - 2 || data_.length == 1)
153                                                break; 
154                                        var line_contact = $('li.ui-selected');
155                                        $('li.ui-selected').next().removeClass("ui-selectee").addClass("ui-selected");
156                                        line_contact.removeClass("ui-selected").addClass("ui-selectee");
157                                        var details = $("#detalhes_contato").empty();                                 
158                        $( ".ui-selected", this ).each(function() {
159                            if(data_['type_catalog'] == 'G')
160                            {                                         
161                                var extra_fields = (data_['extra_ldap_fields']).split("#");   
162                                /* Default fields */
163                                details.append("<strong>" + utf8_decoder(data_[this.value].cn[0]));
164                                details.append("<br />" + data_[this.value].mail[0]);
165                                details.append("<br /><br /><strong>Matrícula<br />");
166                                details.append(data_[this.value].employeenumber[0] + "<br />");
167                                details.append("<br /><strong> Telefone <br />");
168                                details.append(data_[this.value].telephonenumber[0] + "<br />");
169                                details.append(data_[this.value].telephonenumber[0]);
170                                for (var i=0; i<extra_fields.length-1; i++)
171                                {
172                                    var campo = extra_fields[i].substr(extra_fields[i].indexOf("|")+1);   
173                                    var valor = extra_fields[i].substr(0, (extra_fields[i].indexOf("|")));                                         
174                                    if(data_[this.value][valor] != undefined)
175                                    {   
176                                        details.append("<br /><br /><strong>" + campo);
177                                        details.append("<br />" + data_[this.value][valor][0]);
178                                    }
179                                }
180                                                        }
181                            else
182                            {
183                                    if(data_['type_catalog'] == 'P')
184                                    {
185                                        /* Default fields */
186                                        details.append("<strong>" + utf8_decoder(data_[this.value].cn));
187                                        details.append("<br />" + data_[this.value].mail);
188                                        if(data_[this.value].telephonenumber != "")
189                                        {
190                                            details.append("<br /><br /><br /><strong> Telefone <br />");
191                                            details.append(data_[this.value].telephonenumber + "<br />"); 
192                                        }
193                                    }
194                                    else
195                                    {
196                                        var extra_fields = (data_['extra_ldap_fields']).split("#");   
197                                        /* Default fields */
198                                        details.append("<strong>" + utf8_decoder(data_[this.value].cn));
199                                        details.append("<br />" + data_[this.value].mail);
200                                        if(data_[this.value].telephonenumber != "")
201                                        {
202                                            details.append("<br /><br /><br /><strong> Telefone <br />");
203                                            details.append(data_[this.value].telephonenumber + "<br />"); 
204                                        }
205                                        if(data_[this.value].mail[0].length > 1)
206                                        {
207                                            for (var i=0; i<extra_fields.length-1; i++)
208                                            {
209                                                var campo = extra_fields[i].substr(extra_fields[i].indexOf("|")+1);   
210                                                var valor = extra_fields[i].substr(0, (extra_fields[i].indexOf("|")));                                         
211                                                if(data_[this.value][valor] != undefined)
212                                                {   
213                                                    details.append("<br /><br /><strong>" + campo);
214                                                    details.append("<br />" + data_[this.value][valor][0]);
215                                                }
216                                            }
217                                        }
218                                    }
219                            }
220                                                });
221                                        break;
222                        }
223                });     
224        }
225                       
226                       
227                       
228                /*
229                * Método que cria a lista de contatos
230                */
231                function create_list(data)
232                {
233                                        $("#detalhes_contato").empty();
234                                        var paginas = Math.ceil(data.length/7) - 1;
235                                        $("#title_usuarios").html( get_lang("Results") );
236                                        var string_results = $( "#slider" ).slider( "value" ) + " " + get_lang("of") + " " + paginas + " (" + data.length + " " + get_lang("Results") + ")";
237                        var selectable = $("#selectable");
238                                                selectable.empty();
239                        var Ul = document.createElement("ul");
240                        var Op = document.createElement("li");
241                                                for (i=(($( "#slider" ).slider( "value" ) -1)*7)+1; i<((($( "#slider" ).slider( "value" ) -1)*7)+1)+7; i++)
242                        {
243                                                        if(i >= data.length)
244                                                                break;
245                                                        if (data['type_catalog'] != 'G' && (data[i-1].mail == null || data[i-1].mail == ""))
246                                data[i-1].mail = "No mail";
247                            if(i == ((($( "#slider" ).slider( "value" ) -1)*7)+1)){
248                                                                Op.setAttribute("class", "ui-selected");
249                                                        }
250                                                        else { 
251                                                                Op.setAttribute("class", "ui-selectee");
252                                                        }
253                                                        var contact_name = utf8_decoder(data[i-1].cn);
254                                                        if(contact_name.substring(contact_name.toLowerCase().indexOf(data.search_for.toLowerCase())) != -1)                                                                     
255                                                                contact_name = contact_name.substring(0, contact_name.toLowerCase().indexOf(data.search_for.toLowerCase())) + "<u>" + contact_name.substr(contact_name.toLowerCase().indexOf(data.search_for.toLowerCase()), data.search_for.length) + "</u>" + contact_name.substring(contact_name.toLowerCase().indexOf(data.search_for.toLowerCase()) + data.search_for.length);
256                                                        Op.innerHTML = '<span style="float:right; left:335px; position: absolute; z-index: 100; background-color: #EEE; padding:0"><button onClick="add_contact_field(contact_' + i + '.innerHTML)">+</button><button onClick="remove_contact_field(contact_' + i + '.innerHTML)">x</button></span><div id=contact_' + i + ' onDblClick="add_contact_field(this.innerHTML)"><div class="name_contact"><strong>' + contact_name + '</strong><em>' + utf8_decoder(data[i-1].mail) + '</em></div></div>';
257                            $(Op).val(i - 1);
258                            Ul.appendChild(Op);
259                            selectable.append(Ul.innerHTML);
260                        }
261                        $( "#amount" ).val( string_results );
262                                                $( "#amount" ).val( $( "#slider" ).slider( "value" ) + " " + get_lang("of") + " " + paginas + " (" + data.length + " " + get_lang("Results") + ")");   
263                                                document.getElementById("amount").focus();     
264                }       
265               
266               
267               
268               
269               
270               
271                function details_results(data)
272        {
273                                $(function() {
274                    $( "#selectable" ).selectable({
275                                                stop: function() {
276                                                                var details = $("#detalhes_contato").empty();                                 
277                                $( ".ui-selected", this ).each(function() {
278                                    if(data['type_catalog'] == 'G')
279                                    {                                         
280                                        var extra_fields = (data['extra_ldap_fields']).split("#");   
281                                        /* Default fields */
282                                        details.append("<strong>" + utf8_decoder(data[this.value].cn[0]));
283                                        details.append("<br />" + data[this.value].mail[0]);
284                                        details.append("<br /><br /><strong>Matrícula<br />");
285                                        details.append(data[this.value].employeenumber[0] + "<br />");
286                                        details.append("<br /><strong> Telefone <br />");
287                                        details.append(data[this.value].telephonenumber[0] + "<br />");
288                                        details.append(data[this.value].telephonenumber[0]);
289                                        for (var i=0; i<extra_fields.length-1; i++)
290                                        {
291                                            var campo = extra_fields[i].substr(extra_fields[i].indexOf("|")+1);   
292                                            var valor = extra_fields[i].substr(0, (extra_fields[i].indexOf("|")));                                         
293                                            if(data[this.value][valor] != undefined)
294                                            {   
295                                                details.append("<br /><br /><strong>" + campo);
296                                                details.append("<br />" + data[this.value][valor][0]);
297                                            }
298                                        }
299                                    }
300                                    else
301                                    {
302                                        if(data['type_catalog'] == 'P')
303                                        {
304                                            /* Default fields */
305                                            details.append("<strong>" + utf8_decoder(data[this.value].cn));
306                                            details.append("<br />" + data[this.value].mail);
307                                            if(data[this.value].telephonenumber != "")
308                                            {
309                                                details.append("<br /><br /><br /><strong> Telefone <br />");
310                                                details.append(data[this.value].telephonenumber + "<br />"); 
311                                            }
312                                        }
313                                        else
314                                        {
315                                                var extra_fields = (data['extra_ldap_fields']).split("#");   
316                                                /* Default fields */
317                                                details.append("<strong>" + utf8_decoder(data[this.value].cn));
318                                                details.append("<br />" + data[this.value].mail);
319                                                if(data[this.value].telephonenumber != "")
320                                                {
321                                                    details.append("<br /><br /><br /><strong> Telefone <br />");
322                                                    details.append(data[this.value].telephonenumber + "<br />"); 
323                                                }
324                                                if(data[this.value].mail[0].length > 1)
325                                                {
326                                                    for (var i=0; i<extra_fields.length-1; i++)
327                                                    {
328                                                        var campo = extra_fields[i].substr(extra_fields[i].indexOf("|")+1);   
329                                                        var valor = extra_fields[i].substr(0, (extra_fields[i].indexOf("|")));                                         
330                                                        if(data[this.value][valor] != undefined)
331                                                        {   
332                                                            details.append("<br /><br /><strong>" + campo);
333                                                            details.append("<br />" + data[this.value][valor][0]);
334                                                        }
335                                                    }
336                                                }
337                                        }
338                                    }
339                                                                });
340                                                }
341                    });
342                });
343        }
344       
345       
346        /*
347         * Método que inicializa a tela de contatos
348         */
349        function init_results(data)
350        {                       
351                        var Op = null;
352                        var Ul = null;
353                        var selectable = $("#selectable");
354            selectable.empty();
355            Ul = document.createElement("ul");
356            Op = document.createElement("li");
357                        var limit = data.length < 7 ? data.length : 7;
358                        for (i=1; i<=limit; i++)
359            {
360                                Op.setAttribute("class", "ui-selectee");
361                                if(i == 1)
362                                        Op.setAttribute("class", "ui-selected");
363                                var contact_name = utf8_decoder(data[i-1].cn);
364                                if(data['type_catalog'] != 'G' && (data[i-1].mail == null || data[i-1].mail == ""))
365                                {
366                                        data[i-1].mail = "No mail";
367                                }
368                               
369                                if(contact_name.substring(contact_name.toLowerCase().indexOf(data.search_for.toLowerCase())) != -1)                                                                     
370                                        contact_name = contact_name.substring(0, contact_name.toLowerCase().indexOf(data.search_for.toLowerCase())) + "<u>" + contact_name.substr(contact_name.toLowerCase().indexOf(data.search_for.toLowerCase()), data.search_for.length) + "</u>" + contact_name.substring(contact_name.toLowerCase().indexOf(data.search_for.toLowerCase()) + data.search_for.length);
371                                Op.innerHTML = '<span style="float:right; left:335px; position: absolute; z-index: 100; background-color: #EEE; padding:0"><button onClick="add_contact_field(contact_' + i + '.innerHTML)">+</button><button onClick="remove_contact_field(contact_' + i + '.innerHTML)">x</button></span><div class="id_contact_field" id=contact_' + i + ' onDblClick="add_contact_field(this.innerHTML)"><div class="name_contact"><strong>' + contact_name + '</strong><em>' + utf8_decoder(data[i-1].mail) + '</em></div></div>';
372                $(Op).val(i - 1);
373                Ul.appendChild(Op);
374                selectable.append(Ul.innerHTML);
375            }
376                        $("#adds").html("Foram adicionados " + quantidade_contatos + " contatos.");
377        }
378       
379       
380        /*
381         * Método que configura o slider e os resultados
382         */
383        function configure_slider(data)
384        {       
385                        $("#detalhes_contato").empty();
386            var paginas = Math.ceil(data.length/7);
387            $("#title_usuarios").html( get_lang("Results") );
388            $(function() {
389                $( "#slider" ).slider({
390                                        value:1,
391                                        min: 1,
392                                        max: paginas,
393                                        step: 1,
394                        slide: function( event, ui )
395                        {
396                                                                var string_results = ui.value + " " + get_lang("of") + " " + paginas + " (" + data.length + " " + get_lang("Results") + ")";
397                                var selectable = $("#selectable");
398                                selectable.empty();
399                                var Ul = document.createElement("ul");
400                                var Op = document.createElement("li");
401                                                                for (i=((ui.value-1)*7)+1; i<(((ui.value-1)*7)+1)+7; i++)
402                                {
403                                    if(data['type_catalog'] != 'G' && (data[i-1].mail == null || data[i-1].mail == ""))
404                                                                        {
405                                                                                data[i-1].mail = "No mail";
406                                                                        }       
407                                                                        var contact_name = utf8_decoder(data[i].cn);
408                                                                        if(contact_name.substring(contact_name.toLowerCase().indexOf(data.search_for.toLowerCase())) != -1)                                                                     
409                                                                                contact_name = contact_name.substring(0, contact_name.toLowerCase().indexOf(data.search_for.toLowerCase())) + "<u>" + contact_name.substr(contact_name.toLowerCase().indexOf(data.search_for.toLowerCase()), data.search_for.length) + "</u>" + contact_name.substring(contact_name.toLowerCase().indexOf(data.search_for.toLowerCase()) + data.search_for.length);
410                                                                       
411                                    Op.setAttribute("class", "ui-selectee");
412                                                                        Op.innerHTML = '<span style="float:right; left:335px; position: absolute; z-index: 100; background-color: #EEE; padding:0"><button onClick="add_contact_field(contact_' + i + '.innerHTML)">+</button><button onClick="remove_contact_field(contact_' + i + '.innerHTML)">x</button></span><div class="id_contact_field" id=contact_' + i + ' onDblClick="add_contact_field(this.innerHTML)"><div class="name_contact"><strong>' + contact_name + '</strong><em>' + utf8_decoder(data[i].mail) + '</em></div></div>';
413                                    $(Op).val(i);
414                                    Ul.appendChild(Op);
415                                    selectable.append(Ul.innerHTML);
416                                }
417                                $( "#amount" ).val( string_results );
418                                                                $(this).unbind('keypress');
419                                                                document.getElementById("amount").focus();
420                                                }
421                    });
422                    $( "#amount" ).val( $( "#slider" ).slider( "value" ) + " " + get_lang("of") + " " + paginas + " (" + data.length + " " + get_lang("Results") + ")");         
423                });
424        }
425       
426
427               
428        function checkEnter(e)
429                {
430                        var kC = window.event ? event.keyCode :
431            e && e.keyCode ? e.keyCode :
432            e && e.which ? e.which : null;
433            if (kC) {
434                                //$("#dialog-modal").unbind('keypress');
435                                return kC == 13;
436                        }
437            else{
438                                return false;
439                        }
440                }
441       
442        /*
443         * Faz a busca direto da tela modal 
444         */
445        function buscaContato(param)
446        {
447                        $("#busca").empty();
448                        if(param.length == 0)
449            {
450                alert(get_lang("Please enter a parameter to search."));
451                return false;
452            }
453            if(param.length < preferences.search_characters_number)
454            {
455                alert(get_lang("parameter must be at least") + " " +  preferences.search_characters_number + " " + get_lang("characters"));
456                return false;
457            }
458            var catalog = $("#combobox").val();
459            var handler_emQuickSearch = function(data)
460            {
461                data_ = data;
462                                if(data_.length > 0)
463                {       
464                    init_results(data_);
465                    configure_slider(data_);   
466                    details_results(data_);
467                }
468                else
469                {
470                    $("#detalhes_contato, #selectable").empty();
471                    configure_slider(data);
472                }
473            }
474            cExecute ("$this.ldap_functions.quicksearchcontact&search_for="+param+"&field=TO&ID=0&catalog="+catalog, handler_emQuickSearch);
475        }
476               
477       
478                quantidade_contatos = 0;
479        /*
480         * Método que adiciona o contato selecionado no campo do email (To, CC, CCo)
481         */
482        function add_contact_field(contact)
483        {
484                        quantidade_contatos++;
485            $("#adds").html("Foram adicionados " + quantidade_contatos + " contatos.");
486                        var emailList      = document.getElementById(field_ + "_" + id_).value;
487            var contact_parsed = contact.replace(/<\/?[^>]+>/gi, ' ');
488            contact_parsed     = contact_parsed.replace(/^\s+|\s+$/gi, "").replace(/\s{2,}/gi, "|");
489            var tokens_contact = contact_parsed.split("|");
490
491            if (tokens_contact[1].indexOf("(") > 0)
492                tokens_contact[1] = tokens_contact[1].substr(0, (tokens_contact[1].indexOf("("))-2);
493                               
494                        var final_contact;
495                        if(tokens_contact[2] == undefined)
496                                final_contact = "\"" + tokens_contact[0] + " " + "\" <" + tokens_contact[1] + ">, ";
497                        else
498                        {                       
499                                if(tokens_contact[3] == undefined)               
500                                        final_contact =  "\"" + tokens_contact[0] + " " +  tokens_contact[1] + "\" <" + tokens_contact[2] + ">, ";
501                                else
502                                        final_contact =  "\"" + tokens_contact[0] + " " +  tokens_contact[1] + " " +  tokens_contact[2] + "\" <" + tokens_contact[3] + ">, ";
503            }
504            if (emailList[0] != '"')
505                emailList = emailList.substr(end_);
506           
507            if(emailList.lastIndexOf(",") > 0)
508                emailList = emailList.substr(0, emailList.lastIndexOf(",") + 2);
509           
510            new_emailList = emailList + final_contact;   
511            document.getElementById(field_ + "_" + id_).value = new_emailList;
512                        document.getElementById(field_ + "_" + id_).focus();   
513                        $(this).unbind('keypress');
514                        $(this).dialog("close");
515        }
516               
517                /*
518         * Método que remove o contato selecionado no campo do email (To, CC, CCo)
519         */
520                function remove_contact_field(contact)
521                {
522                        var contact_parsed = contact.replace(/<\/?[^>]+>/gi, ' ');
523            contact_parsed     = contact_parsed.replace(/^\s+|\s+$/gi, "").replace(/\s{2,}/gi, "|");
524                        var tokens_contact = contact_parsed.split("|");
525                       
526                        if (tokens_contact[2].indexOf("(") > 0)
527                tokens_contact[2] = tokens_contact[2].substr(0, (tokens_contact[2].indexOf("("))-2);
528                        var final_contact;
529                        if(tokens_contact[3] == undefined)               
530                                final_contact =  "\"" + tokens_contact[0] + " " +  tokens_contact[1] + "\" <" + tokens_contact[2] + ">";
531                        else
532                                final_contact =  "\"" + tokens_contact[0] + " " +  tokens_contact[1] + " " +  tokens_contact[2] + "\" <" + tokens_contact[3] + ">";
533                       
534                        if(quantidade_contatos ==0)
535                        {
536                                alert("Nenhum contato adicionado!");
537                                return false;
538                        }
539                       
540                        var encontrou = false;
541                        var emailList = document.getElementById(field_ + "_" + id_).value;
542                        var emails_adicionados = emailList.split(",");
543                        var quantidade_excluidos = 0;
544                        for(i=0; i<emails_adicionados.length -1; i++)
545                        {
546                                if(emails_adicionados[i].trim() == final_contact)
547                                {
548                                        emails_adicionados[i] = "%";
549                                        quantidade_excluidos++;
550                                        encontrou = true;
551                                }
552                        }
553                        if (encontrou == false)
554                        {
555                                alert("Não pode excluir um contato que ainda não adicionou.");
556                                return false;
557                        }
558                       
559                        quantidade_contatos -= quantidade_excluidos;
560            $("#adds").html("Foram adicionados " + quantidade_contatos + " contatos.");
561                       
562                        var novos_contatos = emails_adicionados.join(","); 
563            novos_contatos = novos_contatos.replace(/%,/g, "");
564                        document.getElementById(field_ + "_" + id_).value = novos_contatos;
565                }
566       
567             
568        function utf8_decoder ( str_data )
569        {
570            var tmp_arr = [], i = 0, ac = 0, c1 = 0, c2 = 0, c3 = 0;
571           
572            str_data += '';
573           
574            while ( i < str_data.length )
575            {
576                c1 = str_data.charCodeAt(i);
577                if (c1 < 128)
578                {
579                    tmp_arr[ac++] = String.fromCharCode(c1);
580                    i++;
581                } else if ((c1 > 191) && (c1 < 224))
582                       {
583                            c2 = str_data.charCodeAt(i+1);
584                            tmp_arr[ac++] = String.fromCharCode(((c1 & 31) << 6) | (c2 & 63));
585                            i += 2;
586                        } else {
587                                    c2 = str_data.charCodeAt(i+1);
588                                    c3 = str_data.charCodeAt(i+2);
589                                    tmp_arr[ac++] = String.fromCharCode(((c1 & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
590                                    i += 3;
591                                }
592            }
593 
594            return tmp_arr.join('');
595        }
596       
597             
598    function show_help()
599        {
600                $(function() {
601                        $( "#dialog-modal_help" ).dialog({
602                                                resizable: false,
603                                                height: 230,
604                                                width: 540,
605                                                modal: true,
606                                                closeOnEscape: true,
607
608                        });
609                });
610        }       
611                 
612             
613        emQuickCatalogSearch.prototype.showWindow = function (div)
614        {
615                                $(this).bind('keypress');
616                                $(function() {
617                    $( "#dialog:ui-dialog" ).dialog( "destroy" );                   
618                    $( "#dialog-modal" ).dialog({
619                                                resizable: false,
620                                                height: 530,
621                                                width: 940,
622                                                modal: true,
623                                                closeOnEscape: true,
624                                                close: function (event, ui) {
625                                                        event.stopPropagation();
626                                                        $(this).unbind('keypress');
627                                                },
628                                                focus: function (event, ui) {
629                                                        $(this).bind('keypress');
630                                                },
631                                                beforeClose: function (event, ui) {
632                                                        $(this).bind('keypress');
633                                                },
634                                                buttons:{
635                                                        'Fechar' : function(){
636                                                                $("#detalhes_contato, #selectable, #busca").empty();
637                                                                $(this).dialog("close");
638                                                        }
639                                                }
640                                        });
641                });
642       
643               
644               
645        if(! div) {
646                        alert(get_lang('The list has no participant.'));
647                        return;
648                }
649                                                       
650                if(! this.arrayWin[div.id]) {
651                        div.style.width = "700px";
652                        div.style.height = "230px";
653                        var title = get_lang('The results were found in the Global Catalog')+':';
654                        var wHeight = div.offsetHeight + "px";
655                        var wWidth =  div.offsetWidth   + "px";
656                        div.style.width = div.offsetWidth - 5;
657
658                        win = new dJSWin({                     
659                                id: 'QuickCatalogSearch_'+div.id,
660                                content_id: div.id,
661                                width: wWidth,
662                                height: wHeight,
663                                title_color: '#3978d6',
664                                bg_color: '#eee',
665                                title: title,                                           
666                                title_text_color: 'white',
667                                button_x_img: '../phpgwapi/images/winclose.gif',
668                                border: true,
669                                onclose: 'QuickCatalogSearch.restoreShortcuts("'+ div.id +'")'});
670
671                        this.arrayWin[div.id] = win;
672                        win.draw();
673                }
674                else {
675                        win = this.arrayWin[div.id];
676                }
677                //document.getElementById("window_QuickCatalogSearch").style.visibility = "visible";
678                //win.open();
679                //document.getElementById('select_QuickCatalogSearch').focus();
680
681                if(is_ie && (preferences.use_shortcuts == '1')){
682                    shortcut.remove('down');
683                    shortcut.remove('up');
684                    shortcut.remove('return');
685                }
686        }
687       
688        emQuickCatalogSearch.prototype.transfer_result = function (field, ID, begin, end){
689                cm = document.getElementById('select_QuickCatalogSearch');
690                option_selected = cm.options[cm.selectedIndex].value + ", ";
691                emailList = document.getElementById(field + "_" + ID).value;
692               
693                new_emailList = emailList.substring(0, begin) + option_selected + emailList.substring((parseInt(end) + 2), emailList.length);
694                document.getElementById(field + "_" + ID).value = new_emailList;
695                document.getElementById(field + "_" + ID).focus();
696                this.arrayWin['window_QuickCatalogSearch_A'].close();
697                document.getElementById("window_QuickCatalogSearch").style.visibility = "hidden";
698        }
699
700        emQuickCatalogSearch.prototype.close_QuickSearch_window = function (field, ID){
701                //document.getElementById('QuickCatalogSearch_window_QuickCatalogSearch').style.display = "none";
702                document.getElementById(field + "_" + ID).focus();
703                this.arrayWin['window_QuickCatalogSearch_A'].close();
704                document.getElementById("window_QuickCatalogSearch").style.visibility = "hidden";
705                if(typeof shortcut.all_shortcuts['down'] == 'undefined'){
706                    if(is_ie  && (preferences.use_shortcuts == '1'))
707                    {
708                        shortcut.add("down",function(){select_msg('null', 'down');},{'disable_in_input':false});
709                        shortcut.add("up",function(){select_msg('null', 'up');},{'disable_in_input':false});
710                        shortcut.add("return",function(){
711                            if ( Element('border_id_0').className==='menu-sel' )
712                            {
713                                    all_messages = Element('tbody_box').childNodes;
714                                    for (var i=0; i < all_messages.length; i++)
715                                    {
716                                            if ( exist_className(all_messages[i], 'selected_shortcut_msg') )
717                                            {
718                                                    Element("td_who_" + all_messages[i].id).onclick();
719                                                    return;
720                                            }
721                                    }
722                            }
723                        },{'disable_in_input':true});
724                    }
725                }
726        }
727
728        emQuickCatalogSearch.prototype.restoreShortcuts = function(id) {
729
730            var search_win = document.getElementById(id);
731            if(typeof shortcut.all_shortcuts['down'] == 'undefined'){
732                if (search_win.style.visibility == 'visible')
733                {
734                    shortcut.add("down",function(){select_msg('null', 'down');},{'disable_in_input':false});
735                    shortcut.add("up",function(){select_msg('null', 'up');},{'disable_in_input':false});
736                    shortcut.add("return",function(){
737                        if ( Element('border_id_0').className==='menu-sel' )
738                        {
739                                all_messages = Element('tbody_box').childNodes;
740                                for (var i=0; i < all_messages.length; i++)
741                                {
742                                        if ( exist_className(all_messages[i], 'selected_shortcut_msg') )
743                                        {
744                                                Element("td_who_" + all_messages[i].id).onclick();
745                                                return;
746                                        }
747                                }
748                        }
749                    },{'disable_in_input':true});
750                }
751            }
752            search_win.style.visibility = 'hidden';
753
754        }
755
756        emQuickCatalogSearch.prototype.close_window = function(id) {
757                this.arrayWin[id].close();
758                var group_values = Element('list_values');
759                var user_values = Element('user_values');
760        }
761        emQuickCatalogSearch.prototype.showCatalogList = function (border_id){
762                var el = Element('catalog_list');
763
764                if(el) {
765                        Element('border_id').value = border_id;
766                        win = this.arrayWin[el.id];
767                        win.open();
768                        return;         
769                }
770                var border_input   = document.createElement("INPUT");
771                border_input.type  = 'hidden';
772                border_input.id    = 'border_id';
773                border_input.value = border_id;
774                document.body.appendChild(border_input);
775                el = document.createElement("DIV");             
776                el.id = 'catalog_list';
777                document.body.appendChild(el);                 
778                el.style.visibility = "hidden";
779                el.style.position = "absolute";
780                el.style.width = "700px";
781                el.style.height = is_ie ? "360px" : "375px";           
782                el.style.left = "0px";
783                el.style.top = "0px";                   
784                el.innerHTML = "<table border='0' cellpading='0' cellspacing='0' width='100%'>"+
785                                           "<tr><td id='td1' style='cursor:pointer' align='center' onclick='QuickCatalogSearch.select_div(\"tab1\")'><a href='#' class='catalog' onclick='QuickCatalogSearch.select_div(\"tab1\");'>"+get_lang('Global Catalog')+"</a></td>"+
786                                           "<td id='td2' style='background:#cecece;cursor:pointer' onclick='QuickCatalogSearch.select_div(\"tab2\")' align='center'><a href='#' class='catalog' onclick='QuickCatalogSearch.select_div(\"tab2\");'>"+get_lang('Personal Catalog')+"</a></td></tr>"+
787                                           '</table>'+
788                                           '<div id="tab1" align="center"><br>'+
789                                           '<table border="0" cellpading="0" cellspacing="0">'+
790                                           '<tr><td>'+get_lang("Select an organization and click on button <b>Search</b>")+'&nbsp;:</td></tr>'+
791                                        '<tr><td><select style="display:none;width:150px" id="select_catalog" name="select_catalog" onchange="javascript:QuickCatalogSearch.update_organizations();"></select>&nbsp'+
792                                        '<select id="select_organization" style="width:150px" name="select_organization"></select>&nbsp;'+   
793                                        '<input type="text" id="search_for" name="search_for" value="" size="30" maxlength="30"/>&nbsp;<input type="button" onclick="QuickCatalogSearch.searchCatalogList(true)" class="button" value="'+get_lang('Search')+'">&nbsp;<input style="display:visible" type="button" onclick="QuickCatalogSearch.searchCatalogList(false)" class="button" value="'+get_lang('List All')+'"></td></tr>'+
794                                           '<tr><td><input onclick="javascript:QuickCatalogSearch.changeOptions(this.value)" id="type_l" type="radio" name="type" value="l"/>'+get_lang('Public Lists')+'&nbsp;&nbsp;<input type="radio" id="type_u" name="type" value="u" onclick="javascript:QuickCatalogSearch.changeOptions(this.value)" checked/>'+get_lang('Users')+'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'+
795                                           '<span style="visibility:hidden;background:#cc4444" id=msg_search>&nbsp;&nbsp;<font face="Verdana" size="1" color="WHITE">'+get_lang('Search in Catalog')+'...</font>&nbsp;</span></td></tr>'+
796                                           '<tr><td>'+
797                                           '<span id="list_span"><select multiple style="display:none;width:580px" size="14" id="list_values"></select></span>'+
798                                           '<span id="user_span"><select multiple style="width:580px" size="14" id="user_values"></select></span>'+
799                                           '</td></tr>'+
800                                           '<tr><td nowrap><center>'+get_lang('Click here to add into the fields')+':&nbsp;<input type="button" class="button" value="'+get_lang('TO')+'" onClick="javascript:QuickCatalogSearch.addContacts(\'to\')">&nbsp;'+
801                                           '<input type="button" class="button" value="'+get_lang('CC')+'" onClick="javascript:QuickCatalogSearch.addContacts(\'cc\')">&nbsp;'+( allow_hidden_copy ? 
802                           '<input type="button" class="button" value="'+get_lang('CCo')+'" onClick="javascript:QuickCatalogSearch.addContacts(\'cco\')">' : '' )+
803                                           '</center></td></tr><tr><td nowrap><center><input type="button" value="'+get_lang('Close')+'" onClick="javascript:QuickCatalogSearch.close_window(\'catalog_list\')"></center></td></tr>'+
804                                           '</table>'+
805                                           '</div>'+
806                                           '<div style="display:none" id="tab2" align="center">'+
807                                           '<br><br><br>'+
808                                           '<table border="0" cellpading="0" cellspacing="0">'+
809                                           '<tr><td>'+get_lang("Select the type of contact that you want to view")+'&nbsp;:</td></tr>'+
810                                           '<tr><td><input onclick="javascript:QuickCatalogSearch.changeOptions(this.value)" type="radio" name="type" value="p"/>' + get_lang('People') + '&nbsp;&nbsp;<input type="radio" name="type" value="g" onclick="javascript:QuickCatalogSearch.changeOptions(this.value)"/>' + get_lang('Groups') + ' &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'+
811                                           '<tr><td>'+
812                                           '<span id="personal_span"><select multiple style="width:580px" size="14" id="list_personal"></select></span>'+
813                                           '<span id="groups_span"><select multiple style="display:none;width:580px" size="14" id="list_groups"></select></span>'+
814                                           '</td></tr>'+
815                                           '<tr><td nowrap><center>'+get_lang('Click here to add into the fields')+':&nbsp;<input type="button" class="button" value="'+get_lang('TO')+'" onClick="javascript:QuickCatalogSearch.addContacts(\'to1\')">&nbsp;'+
816                                           '<input type="button" class="button" value="'+get_lang('CC')+'" onClick="javascript:QuickCatalogSearch.addContacts(\'cc1\')">&nbsp;'+ ( allow_hidden_copy ?
817                           '<input type="button" class="button" value="'+get_lang('CCo')+'" onClick="javascript:QuickCatalogSearch.addContacts(\'cco1\')">' : '' )+
818                                           '</center></td></tr><tr><td nowrap><center><input type="button" value="'+get_lang('Close')+'" onClick="javascript:QuickCatalogSearch.close_window(\'catalog_list\')"></center></td></tr>'+
819                                           '</table>'+
820                                           '</div>';
821
822                var title = get_lang('Search in the Global Catalog');
823                var wHeight = el.offsetHeight - (is_ie ? 10 : 0) + "px";
824                var wWidth =  el.offsetWidth   + "px";
825                el.style.width = el.offsetWidth;
826               
827                Element('search_for').onkeypress = function (e) {
828                        if ((is_ie && (window.event.keyCode == 13)) || (!is_ie && e.keyCode == 13)) {
829                                QuickCatalogSearch.searchCatalogList(true);
830                        }
831                };
832
833                win = new dJSWin({                     
834                        id: 'win_'+el.id,
835                        content_id: el.id,
836                        width: wWidth,
837                        height: wHeight,
838                        title_color: '#3978d6',
839                        bg_color: '#eee',
840                        title: title,                                           
841                        title_text_color: 'white',
842                        button_x_img: '../phpgwapi/images/winclose.gif',
843                        border: true});
844                       
845                this.arrayWin[el.id] = win;             
846                win.draw();
847                win.open();
848
849                var handler_catalogs = function(data){
850                        var user_catalog = get_lang("Global Catalog");
851                        if(data.length > 1) {
852                                Element('select_catalog').style.display = '';
853                                for(i = 0; i < data.length; i++) {             
854                                        Element('select_catalog').options[i] = new Option(data[i],i);
855                                        if(user_catalog.toUpperCase() == data[i].toUpperCase())
856                                                Element('select_catalog').options[i].selected = true;
857                                }
858                        }
859                }
860                cExecute ("$this.ldap_functions.get_catalogs", handler_catalogs);               
861               
862                this.update_organizations();
863                var handler_cc_contacts= function(data){
864                        if(data && data.length > 0){
865                                var aux = data.split(",");
866                                for(var i=0; i< aux.length; i++){
867                                        QuickCatalogSearch.cc_contacts[QuickCatalogSearch.cc_contacts.length] = aux[i];                         
868                                }
869                        }
870                }
871                cExecute("$this.db_functions.get_cc_contacts",handler_cc_contacts);
872
873                var handler_cc_groups = function(data){
874                        if(data && data.length > 0){
875                                var aux = data.split(",");
876                                for(var i=0; i < data.length; i++){
877                                        QuickCatalogSearch.cc_groups[QuickCatalogSearch.cc_groups.length] = aux[i];                                                             
878                                }       
879                        }
880                }
881                cExecute("$this.db_functions.get_cc_groups",handler_cc_groups);
882       
883        }
884       
885        emQuickCatalogSearch.prototype.select_div = function(element){
886                if(element == 'tab1'){
887                   Element('tab1').style.display = '';
888                   Element('tab2').style.display = 'none';
889                   Element('td1').style.background = '#eee';   
890                   Element('td2').style.background = '#cecece';
891                }
892                if(element == 'tab2'){
893                   Element('tab1').style.display = 'none';
894                   Element('tab2').style.display = '';
895                   Element('td1').style.background = '#cecece';
896                   Element('td2').style.background = '#eee';               
897
898                }
899        }
900       
901        emQuickCatalogSearch.prototype.load_catalog = function(){
902       
903                var _this = this;
904                var content = new Array;
905                var select = Element('list_personal').style.display == 'none'? Element('list_groups'): Element('list_personal');
906               
907                if(Element('list_personal').style.display == 'none'){
908                        content = _this.cc_groups;
909                }else{
910                        content = _this.cc_contacts;
911                }
912                if(select.options.length > 0){
913                        for(var i=0; i < select.options.length; i++){
914                                select.options[i] = null;
915                                i--;
916                        }
917                }
918                for(var i=0; i < content.length; i++){
919                        if(content[i] != undefined){
920                                var aux = content[i].split(";");
921                                var opt = new Option(aux[0] + ' (' + aux[1] + ')','"' + aux[0] + '" ' + '<' + aux[1] + '>',false,false);
922                                select[select.length] = opt;
923                        }
924                }
925                content.splice(0,(content.lenght));
926        }
927
928        emQuickCatalogSearch.prototype.update_organizations = function(){
929                while(Element('select_organization').options.length > 0) {
930                        Element('select_organization').remove(0);
931                }
932                var handler_org = function(data){
933                        Element('select_organization').options[0] = new Option(get_lang('all'),'all');
934                        if (data != null){
935                                var user_organization = Element('user_organization').value;
936                                for(x = 0; x < data.length; x++) {
937                                        Element('select_organization').options[x+1] = new Option(data[x].toUpperCase(),data[x]);
938                                        if(user_organization.toUpperCase() == data[x].toUpperCase())
939                                                Element('select_organization').options[x+1].selected = true;
940                                }
941                        }
942                }               
943                cExecute ("$this.ldap_functions.get_organizations&referral=false&catalog="+Element('select_catalog').value, handler_org);               
944        }
945
946        emQuickCatalogSearch.prototype.changeOptions = function(type){ 
947
948                switch(type){
949                        case 'u':
950                                Element('list_values').style.display = 'none';
951                                Element('user_values').style.display = '';
952                                break;
953                       
954                        case 'l':               
955                                Element('user_values').style.display = 'none';
956                                Element('list_values').style.display = '';             
957                                break;
958
959                        case 'p':
960                                Element('list_personal').style.display = '';
961                                Element('list_groups').style.display = 'none'
962                                QuickCatalogSearch.load_catalog();                             
963                                break;
964                       
965                        case 'g':
966                                Element('list_personal').style.display = 'none';
967                                Element('list_groups').style.display = ''
968                                QuickCatalogSearch.load_catalog();
969                                break;
970                }
971
972        }
973
974        emQuickCatalogSearch.prototype.addContacts = function(field) {
975               
976                var border_id   = Element('border_id').value;
977                var select              = Element('user_values').style.display == 'none' ? Element('list_values') : Element('user_values');
978                if(field == "to1" || field == "cc1" || field == "cco1"){
979                        field = field.substr(0,field.length - 1);
980                        var select = Element('list_personal').style.display == 'none' ? Element('list_groups') : Element('list_personal');
981                }
982                var fieldOpener = Element(field+"_"+border_id);
983                var not_selected = true;
984               
985                for (i = 0 ; i < select.length ; i++) {
986                        if (select.options[i].selected && select.options[i].value != '-1') {
987                                if(fieldOpener.value.length > 0 && (fieldOpener.value.lastIndexOf(',') != (fieldOpener.value.length - 1))){
988                                        fieldOpener.value += ",";
989                                }
990                                fieldOpener.value += select.options[i].value + ",";
991                                not_selected = false;
992                                select.options[i].selected = false;
993                        }
994                }
995               
996                if(not_selected)
997                        return false;
998                       
999                if(field != 'to'){
1000                        a_link = Element("a_"+field+"_link_"+border_id);
1001                        if(a_link)
1002                                a_link.onclick();
1003                }
1004        }
1005       
1006        emQuickCatalogSearch.prototype.searchCatalogList = function (itemSearch){
1007
1008                if(itemSearch && Element('search_for').value.length < preferences.search_characters_number){
1009                        alert(get_lang('Your search argument must be longer than %1 characters.', preferences.search_characters_number));
1010                        Element('search_for').focus();
1011                        return false;
1012                }
1013                var organization = Element('select_organization').value;               
1014                var search               = itemSearch ? Element('search_for').value : '';
1015                var catalog              = Element('select_catalog').value;
1016
1017                var handler_searchResults = function(data){
1018                        Element('msg_search').style.visibility = 'hidden';
1019                        if(data.error){
1020                                alert(get_lang('More than %1 results. Please, try to refine your search.',data.maxResult));
1021                                return false;
1022                        }else if(data.users.length == 0 && data.groups.length == 0){
1023                                alert(get_lang('None result was found.'));
1024                        }
1025
1026                       
1027                        var group = Element('list_span');
1028                        var user  = Element('user_span');       
1029                        if(is_ie){
1030                                group.innerHTML = '';
1031                                user.innerHTML = '';
1032                        }
1033                        else {
1034                                group = Element('list_values');
1035                                user  = Element('user_values');
1036                                for(var i = 0;i < group.options.length; i++)                           
1037                                        group.options[i--] = null;
1038                                for(var i = 0;i < user.options.length; i++)                             
1039                                        user.options[i--] = null;
1040                        }
1041
1042                        var arr         = new Array(data.maxResult);
1043
1044                        for(i = 0; data.groups && i < data.groups.length; i++) {
1045                                // Maneiras diferentes de se montar uma tag OPTION, pois no IE o objeto Option é muito lento.
1046                                if(is_ie)
1047                                        arr[i] = '<option value="'+'&quot;'+data.groups[i].name+'&quot; &lt;'+data.groups[i].email+'&gt;">'+data.groups[i].name+' ('+data.groups[i].email+')'+'</option>';
1048                                else
1049                                        group.options[i] = new Option(data.groups[i].name+' ('+data.groups[i].email+')','"'+data.groups[i].name+'" <'+data.groups[i].email+'>');
1050                        }
1051       
1052                       
1053                        if(is_ie)
1054                                group.innerHTML = '<select multiple style="display:none;width:580px" size="14" id="list_values">'+ arr.join() +'</select>';
1055
1056                        arr = new Array(data.maxResult);
1057                       
1058                        for(i = 0; data.users && i < data.users.length; i++) {
1059                        /*******************************************************************************************/
1060                        /* O resultado pratico do bloco de codigo a seguir eh a exibicao dos valores em tela,
1061                        ja que vai verificar se o departamento e o email estao vazios ou nulos e a partir dai o
1062                        resultado apresentado em tela sera exibido de maneira mais apresentavel;
1063                        */
1064                                //verifica se departamento eh null ou nao;
1065                                var department = data.users[i].department ? " - " + data.users[i].department : "";
1066                                //verifica se email eh null ou nao;
1067                                var email = data.users[i].email ? data.users[i].email : "";
1068
1069                                // Maneiras diferentes de se montar uma tag OPTION, pois no IE o objeto Option é muito lento.
1070                                if(is_ie)
1071                                        arr[i] = '<option value="'+'&quot;'+data.users[i].name+'&quot; &lt;'+email+'&gt;">'+data.users[i].name+' ('+email+')'+department+'</option>';
1072                                else {
1073                                        user.options[i] = new Option(data.users[i].name+' ('+email+')'+department,'"'+data.users[i].name+'" <'+email+'>'); // incluido data.users[i].department para exibir setor na opcao "Pesquisar" do email;
1074                                }
1075                        }
1076       
1077                        if(is_ie)
1078                                user.innerHTML = '<select multiple style="width:580px" size="14" id="user_values">'+ arr.join() +'</select>';
1079
1080                        // Display entries found.
1081                        var type = (data.groups.length > 0 && data.users.length == 0) ? 'l' : 'u';
1082                        Element("type_"+type).checked = true;
1083                        QuickCatalogSearch.changeOptions(type);
1084                }
1085
1086                Element('msg_search').style.visibility = 'visible';
1087                cExecute ("$this.ldap_functions.catalogsearch&organization="+organization+"&search_for="+search+"&catalog="+catalog, handler_searchResults);
1088        }
1089
1090       
1091/* Build the Object */
1092        //QuickCatalogSearch;
1093        QuickCatalogSearch = new emQuickCatalogSearch();
Note: See TracBrowser for help on using the repository browser.