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

Revision 5134, 24.8 KB checked in by wmerlotto, 12 years ago (diff)

Ticket #2305 - Enviando alteracoes, desenvolvidas internamente na Prognus, do modulo ExpressoMail?.

  • 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        /* showlist */ 
10        emQuickCatalogSearch.prototype.showList = function(data, begin, end, ID, field)
11        {
12                        data_    = data;       
13                        id_    = ID;
14            field_ = field;
15            begin_ = begin;
16            end_   = end;
17
18                        keypress_read(data);
19            configure_slider(data);
20                create_list(data, true);
21            details_results(data);
22                       
23                id = '1';
24                _this = this;
25        var el_A = document.createElement("DIV");
26                el_A.style.visibility = "hidden";
27                el_A.style.position = "absolute";
28                el_A.style.left = "0px";
29                el_A.style.top = "0px";
30                el_A.style.width = "0px";
31                el_A.style.height = "0px";
32                el_A.id = 'window_QuickCatalogSearch_A';
33                document.body.appendChild(el_A);
34                el_A.innerHTML = "";           
35               
36                func_add_contact = function () {       
37                };             
38               
39        _this.showWindow(el_A);
40        }
41       
42       
43    /* Leitura das teclas de atalho */   
44    function keypress_read(data) {     
45                $("#dialog-modal").keydown(function (e) {
46                        var keyCode = e.keyCode;
47                        arrow = {left: 37, up: 38, right: 39, down: 40, enter: 13, esc: 27};
48                        var slider = $( "#slider"  );
49                        switch (keyCode)
50                        {
51                                case arrow.enter:
52                                        if(!search_focus){
53                                                i = $(".ui-selected:last").attr("value") + 1;
54                                                add_contact_field($("#contact_" + i).html());
55                                                document.getElementById("busca").value = "";
56                                                $("#dialog-modal").unbind('keydown');
57                                        $("#dialog-modal").dialog("close");
58                                        }
59                                        break;
60                                case arrow.left:
61                                        slider.slider("value", $( "#slider" ).slider( "value" ) - 1);
62                                        create_list(data_, false);             
63                                        break;
64                                case arrow.right:
65                                        if((($( "#slider" ).slider( "value" ))) == Math.ceil(data_.length/6))
66                                                break;
67                                        slider.slider( "value", $( "#slider" ).slider( "value" ) + 1);                                 
68                                        create_list(data_, false);                                                     
69                                        break;
70                                case arrow.up:
71                                        show_detail(data_, "up");
72                                        break;
73                                case arrow.down:
74                                        show_detail(data_, "down");
75                                                break;
76                                }
77                });     
78                                                        }
79       
80       
81        /* Mostra os detalhes do contato selecionado */
82        function show_detail(data_, direction) {
83                id_contact = $(".ui-selected:last").attr("value");
84                if(direction == "down") {
85                        if((id_contact == (((((parseInt($( "#slider" ).slider( "value" )) - 1)*6))+6)-1)) || id_contact == data_.length - 1 || data_.length == 1)
86                                return;
87                        var line_contact = $('li.ui-selected');
88                        $('li.ui-selected').next().addClass("ui-selected");
89                        id_contact++;
90                                        }
91                else {
92                        if(id_contact == (($( "#slider" ).slider( "value" ) -1)*6))
93                                return;
94                        var line_contact = $('li.ui-selected');
95                        $('li.ui-selected').prev().addClass("ui-selected");
96                        id_contact--;
97                                    }
98                line_contact.removeClass("ui-selected").addClass("ui-selectee");
99                var details = $("#detalhes_contato").empty();                                 
100                switch(data_['type_catalog']) {
101                        case 'G':
102                                        var extra_fields = (data_['extra_ldap_fields']).split("#");   
103                                if(preferences.default_fields_quick_search != 0) {
104                                        details.append('<p><label class="attribute">' + utf8_decoder(data_[id_contact].cn[0]) + "</label>" + '<span class="value">' + data_[id_contact].mail[0] + '</span></p>');
105                                        details.append('<p><label class="attribute">Telefone </label>' + '<span class="value">' + data_[id_contact].telephonenumber[0] + '</span></p>');           
106                                        }
107                                for (var i=0; i<=extra_fields.length-1; i++)
108                                            {
109                                                var campo = extra_fields[i].substr(extra_fields[i].indexOf("|")+1);   
110                                                var valor = extra_fields[i].substr(0, (extra_fields[i].indexOf("|")));                                         
111                                        if(data_[id_contact][valor.toLowerCase()] != undefined) {
112                                                var tmp_campo = '<p><label class="attribute">' + campo + "</label>" ;
113                                                for(j=0; j<data_[id_contact][valor.toLowerCase()].length; j++) {
114                                                        details.append(tmp_campo + '<span class="value">' + data_[id_contact][valor.toLowerCase()][j] + "</span></p>");
115                                                        tmp_campo = "";
116                                            }
117                                        }
118                                    }
119                                        break;
120                        case 'P':
121                                details.append('<p><label class="attribute">' + utf8_decoder(data_[id_contact].cn) + '</label>' + '<span class="value">' + data_[id_contact].mail + '</span></p>');
122                if(data_[id_contact].telephonenumber != null)
123                    details.append('<p><label class="attribute">Telefone</label>' + '<span class="value">' + data_[id_contact].telephonenumber + '</span></p>');
124                                                break; 
125                        default:
126                                var extra_fields = (data_['extra_ldap_fields']).split("#");   
127                if(preferences.default_fields_quick_search != 0 || data_[id_contact].type_contact == "P") {
128                                        details.append('<p><label class="attribute">' + utf8_decoder(data_[id_contact].cn) + '</label>' + '<span class="value">' + data_[id_contact].mail + '</span></p>');
129                                        if(data_[id_contact].telephonenumber != null)
130                                                details.append('<p><label class="attribute">Telefone</label>' + '<span class="value">' + data_[id_contact].telephonenumber + '</span></p>');
131                                                        }
132                                if(data_[id_contact].mail[0].length > 1) {
133                                        for (var i=0; i<=extra_fields.length-1; i++) {
134                                                var campo = extra_fields[i].substr(extra_fields[i].indexOf("|")+1);   
135                                                var valor = extra_fields[i].substr(0, (extra_fields[i].indexOf("|")));                                         
136                                                if(data_[id_contact][valor.toLowerCase()] != undefined) {
137                                                        var tmp_campo = '<p><label class="attribute">' + campo + "</label>" ;
138                                                        for(j=0; j<data_[id_contact][valor.toLowerCase()].length; j++) {
139                                                                details.append(tmp_campo + '<span class="value">' + data_[id_contact][valor.toLowerCase()][j] + "</span></p>");
140                                                                tmp_campo = "";
141                                                }
142                                            }
143                                        }
144                                    }
145                                        break;
146                        }
147        }
148                       
149                       
150                       
151                /*
152                * Método que cria a lista de contatos
153                */
154        function create_list(data, begin, uiValue) {
155                var sliderValue = 1;
156                if(typeof($( "#slider" ).slider( "value" )) != "object")
157                        sliderValue = $( "#slider" ).slider( "value" );
158                if(uiValue)
159                        sliderValue = uiValue;
160                                        $("#detalhes_contato").empty();
161                var paginas = Math.ceil(data.length/6);
162                                        $("#title_usuarios").html( get_lang("Results") );
163                        var selectable = $("#selectable");
164                                                selectable.empty();
165                        var Ul = document.createElement("ul");
166                for (i=((sliderValue -1)*6)+1; i<(((sliderValue -1)*6)+1)+6; i++) {
167                        var Op = document.createElement("li");
168                        if(i > data.length)
169                                                                break;
170                                                        if (data['type_catalog'] != 'G' && (data[i-1].mail == null || data[i-1].mail == ""))
171                                data[i-1].mail = "No mail";
172                               
173                        if(i == (((sliderValue -1)*6)+1)) {
174                                                                Op.setAttribute("class", "ui-selected");
175                                Op.setAttribute("className", "ui-selected");
176                                                        }
177                                                        else { 
178                                                                Op.setAttribute("class", "ui-selectee");
179                                Op.setAttribute("className", "ui-selectee");
180                                                        }
181                                                        var contact_name = utf8_decoder(data[i-1].cn);
182                        if(contact_name.toLowerCase().indexOf(data.search_for.toLowerCase()) != -1 && data.search_for.indexOf(" ") == -1 && data.search_for.indexOf("@") == -1)                                                                 
183                                                                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);
184                        Op.innerHTML = '<span class="menu-control"><button onClick="add_contact_field(document.getElementById(\'contact_' + i + '\').innerHTML)">+</button><button onClick="remove_contact_field(document.getElementById(\'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>';
185                            $(Op).val(i - 1);
186            selectable.append(Op);
187                        }
188                selectable.append(Ul);
189                var first_contact;
190                begin ? first_contact = 0 : first_contact = ((sliderValue* 6) -6);                     
191                if(first_contact == 0) {
192                        $(document).ready(function(){
193                                $('#combobox option').each(function(){
194                                        if($(this).val() == preferences.catalog_search){
195                                                $(this).attr('selected',true);
196                                        }
197                                });
198                        });
199                }
200                var details = $("#detalhes_contato").empty();                                 
201                switch (data['type_catalog']) {
202                        case 'G':
203                                var extra_fields = (data['extra_ldap_fields']).split("#");   
204                                if(preferences.default_fields_quick_search != 0) {                             
205                                        details.append('<p><label class="attribute">' + utf8_decoder(data[first_contact].cn[0]) + "</label>" + '<span class="value">' + data[first_contact].mail[0] + "</span></p>");
206                                        details.append('<p><label class="attribute">Telefone</label>' + '<span class="value">' + data[first_contact].telephonenumber[0] + '</span></p>');
207                                }
208                                for (var i=0; i<=extra_fields.length-1; i++) {
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[0][valor.toLowerCase()] != undefined)
212                                        {
213                                                var tmp_campo = '<p><label class="attribute">' + campo + "</label>" ;
214                                                for(j=0; j<data[first_contact][valor.toLowerCase()].length; j++) {
215                                                        details.append(tmp_campo + '<span class="value">' + data[first_contact][valor.toLowerCase()][j] + "</span></p>");
216                                                        tmp_campo = "";
217                                                }
218                                        }
219                                }                       
220                                break;
221                        case 'P':
222                                details.append('<p><label class="attribute">' + utf8_decoder(data[first_contact].cn) + '</label>' + '<span class="value">' + data[first_contact].mail + '</span></p>');
223                if(data[first_contact].telephonenumber != null)
224                                        details.append('<p><label class="attribute">Telefone</label>' + '<span class="value">' + data[first_contact].telephonenumber  + '</span></p>');
225                                break;
226                        default:
227                                var extra_fields = (data['extra_ldap_fields']).split("#");   
228                                if(preferences.default_fields_quick_search != 0 || data[first_contact].type_contact == "P") {
229                                        details.append('<p><label class="attribute">' + utf8_decoder(data[first_contact].cn) + "</label>" + '<span class="value">' + data[first_contact].mail + "</span></p>");
230                                        if(data[first_contact].telephonenumber != null)
231                                                details.append('<p><label class="attribute">Telefone</label>' + '<span class="value">' + data[first_contact].telephonenumber + "</span></p>");
232                                }
233                                if(data[first_contact].mail != "No mail") {
234                                        if(data[first_contact].mail[0].length > 1) {
235                                                for (var i=0; i<=extra_fields.length-1; i++) {
236                                                        var campo = extra_fields[i].substr(extra_fields[i].indexOf("|")+1);   
237                                                        var valor = extra_fields[i].substr(0, (extra_fields[i].indexOf("|")));                                         
238                                                        if(data[first_contact][valor.toLowerCase()] != undefined) {
239                                                                var tmp_campo = '<p><label class="attribute">' + campo + "</label>" ;
240                                                                for(j=0; j<data[first_contact][valor.toLowerCase()].length; j++) {
241                                                                        details.append(tmp_campo + '<span class="value">' + data[first_contact][valor.toLowerCase()][j] + "</span></p>");
242                                                                        tmp_campo = "";
243                                                                }       
244                                                        }       
245                                                }
246                                        }
247                                }
248                                break;
249                }
250                var string_results = sliderValue + " " + get_lang("of") + " " + paginas + " (" + data.length + " " + get_lang("Results") + ")";                 
251                $( "#amount-text" ).val( string_results );
252                $("button").button();
253                if(!is_ie)
254                        document.getElementById("amount-text").focus();
255                $("#selectable li:first button:first").focus();
256                removeFocus();
257                }       
258               
259               
260        /* Método que configura os detalhes do resultado da busca */
261        function details_results(data) {
262                                $(function() {
263                    $( "#selectable" ).selectable({
264                                                stop: function() {
265                                                                var details = $("#detalhes_contato").empty();                                 
266                                $( ".ui-selected", this ).each(function() {
267                        switch(data['type_catalog']) {
268                                                        case 'G':
269                                        var extra_fields = (data['extra_ldap_fields']).split("#");   
270                                                                if(preferences.default_fields_quick_search != 0) {     
271                                                                        details.append('<p><label class="attribute">' + utf8_decoder(data[this.value].cn[0]) + "</label>" + '<span class="value">' + data[this.value].mail[0] + "</span></p>");
272                                                                        details.append('<p><label class="attribute">Telefone</label>' + '<span class="value">' + data[this.value].telephonenumber[0] + "</span></p>");
273                                                                }
274                                                                for (var i=0; i<=extra_fields.length-1; i++) {
275                                            var campo = extra_fields[i].substr(extra_fields[i].indexOf("|")+1);   
276                                            var valor = extra_fields[i].substr(0, (extra_fields[i].indexOf("|")));                                         
277                                                                        if(data[this.value][valor.toLowerCase()] != undefined) {
278                                                                                var tmp_campo = '<p><label class="attribute">' + campo + "</label>" ;
279                                                                                for(j=0; j<data[this.value][valor.toLowerCase()].length; j++) {
280                                                                                        details.append(tmp_campo + '<span class="value">' + data[this.value][valor.toLowerCase()][j] + "</span></p>");
281                                                                                        tmp_campo = "";
282                                            }
283                                        }
284                                    }
285                                                                break;
286                                                        case 'P':
287                                                                details.append('<p><label class="attribute">' + utf8_decoder(data[this.value].cn) + "</label>" + '<span class="value">' + data[this.value].mail + "</span></p>");
288                                if(data[this.value].telephonenumber != null)
289                                    details.append('<p><label class="attribute">Telefone</label>' + '<span class="value">' + data[this.value].telephonenumber + "</span></p>");
290                                                                break;
291                                                        default:
292                                                var extra_fields = (data['extra_ldap_fields']).split("#");   
293                                if(preferences.default_fields_quick_search != 0 || data[this.value].type_contact == "P") {
294                                                                        details.append('<p><label class="attribute">' + utf8_decoder(data[this.value].cn) + "</label>" + '<span class="value">' + data[this.value].mail + "</span></p>");
295                                                                        if(data[this.value].telephonenumber != null)
296                                                                                details.append('<p><label class="attribute">Telefone</label>' + '<span class="value">' + data[this.value].telephonenumber + "</span></p>");
297                                                }
298                                                                if(data[this.value].mail[0].length > 1) {
299                                                                        for (var i=0; i<=extra_fields.length-1; i++) {
300                                                        var campo = extra_fields[i].substr(extra_fields[i].indexOf("|")+1);   
301                                                        var valor = extra_fields[i].substr(0, (extra_fields[i].indexOf("|")));                                         
302                                                                                if(data[this.value][valor.toLowerCase()] != undefined) {
303                                                                                        var tmp_campo = '<p><label class="attribute">' + campo + "</label>" ;
304                                                                                        for(j=0; j<data[this.value][valor.toLowerCase()].length; j++) {
305                                                                                                details.append(tmp_campo + '<span class="value">' + data[this.value][valor.toLowerCase()][j] + "</span></p>");
306                                                                                                tmp_campo = "";
307                                                        }
308                                                    }
309                                                }
310                                        }
311                                                                break;
312                                    }
313                                                                });
314                                                }
315                    });
316                });
317        }
318       
319       
320        /*
321         * Método que configura o slider e os resultados
322         */
323    function configure_slider(data) {   
324        var paginas = (Math.ceil(data.length/6));
325            $("#title_usuarios").html( get_lang("Results") );
326            $(function() {
327                $( "#slider" ).slider({
328                                        value:1,
329                                        min: 1,
330                                        max: paginas,
331                                        step: 1,
332                                slide: function( event, ui ) {
333                                        create_list(data, false, ui.value);
334                                                                var string_results = ui.value + " " + get_lang("of") + " " + paginas + " (" + data.length + " " + get_lang("Results") + ")";
335                                        $( "#amount-text" ).val( string_results );
336                                                }
337                    });
338                        $("#selectable li:first button:first").focus();
339                });
340        }
341       
342        var search_focus = false;
343
344        function setFocus() {search_focus = true;return;}
345               
346        function removeFocus() {search_focus = false;return;}
347               
348    function checkEnter(e) {
349                        var kC = window.event ? event.keyCode :
350            e && e.keyCode ? e.keyCode :
351            e && e.which ? e.which : null;
352        if (kC)
353                                return kC == 13;
354        else
355                                return false;
356                        }
357       
358       
359        /*
360         * Faz a busca direto da tela modal 
361         */
362    function buscaContato(param) {
363                $("#busca, #detalhes_contato, #selectable").empty();
364                if(param.length == 0) {
365            alert(get_lang("Please enter a parameter to search"));
366            return;
367            }
368                if(param.length < preferences.search_characters_number) {
369                alert(get_lang("parameter must be at least") + " " +  preferences.search_characters_number + " " + get_lang("characters"));
370                return false;
371            }
372            var catalog = $("#combobox").val();
373        var handler_emQuickSearch = function(data) {
374                data_ = data;
375                        if(data_.length > 0) {       
376                    configure_slider(data_);   
377                create_list(data_, true);
378                    details_results(data_);
379                }
380            else {
381                    $("#detalhes_contato, #selectable").empty();
382                    configure_slider(data);
383                }
384            }
385            cExecute ("$this.ldap_functions.quicksearchcontact&search_for="+param+"&field=TO&ID=0&catalog="+catalog, handler_emQuickSearch);
386        }
387               
388       
389        /*
390         * Método que adiciona o contato selecionado no campo do email (To, CC, CCo)
391         */
392    function add_contact_field(contact) {
393                        var emailList      = document.getElementById(field_ + "_" + id_).value;
394                var contact_parsed = contact.replace(/<[\/]*u>/gi, '');
395                contact_parsed     = contact_parsed.replace(/<u[^>]*>/gi, '');
396                contact_parsed     = contact_parsed.replace(/<\/?[^>]+>/gi, ' ');
397            contact_parsed     = contact_parsed.replace(/^\s+|\s+$/gi, "").replace(/\s{2,}/gi, "|");
398            var tokens_contact = contact_parsed.split("|");
399            if (tokens_contact[1].indexOf("(") > 0)
400                tokens_contact[1] = tokens_contact[1].substr(0, (tokens_contact[1].indexOf("("))-2);
401                               
402                        var final_contact;
403                        if(tokens_contact[2] == undefined)
404                        final_contact = "\"" + tokens_contact[0] + "" + "\" <" + tokens_contact[1] + ">, ";
405                        else
406                        {                       
407                                if(tokens_contact[3] == undefined)               
408                                final_contact =  "\"" + tokens_contact[0] + "" +  tokens_contact[1] + "\" <" + tokens_contact[2] + ">, ";
409                                else
410                                final_contact =  "\"" + tokens_contact[0] + "" +  tokens_contact[1] + "" +  tokens_contact[2] + "\" <" + tokens_contact[3] + ">, ";
411            }
412        if (emailList[0] != '"' && emailList.indexOf(",") < 0)
413                emailList = emailList.substr(end_);
414            if(emailList.lastIndexOf(",") > 0)
415                        emailList = emailList.substr(0, emailList.lastIndexOf(",") + 1);
416           
417                final_contact = final_contact.replace(/\/n/, "");
418            new_emailList = emailList + final_contact;   
419            document.getElementById(field_ + "_" + id_).value = new_emailList;
420               
421                if (is_ie) {
422                        var range= document.getElementById(field_ + "_" + id_).createTextRange();
423                        range.collapse(false);
424                        range.select();
425                } else {
426                        document.getElementById(field_ + "_" + id_).focus();   
427                }
428               
429               
430               
431                        $(this).unbind('keypress');
432                        $(this).dialog("close");
433        }
434               
435                /*
436         * Método que remove o contato selecionado no campo do email (To, CC, CCo)
437         */
438        function remove_contact_field(contact) {
439                        var contact_parsed = contact.replace(/<\/?[^>]+>/gi, ' ');
440            contact_parsed     = contact_parsed.replace(/^\s+|\s+$/gi, "").replace(/\s{2,}/gi, "|");
441                       
442                var tokens_contact = contact_parsed.split("|");
443                        if (tokens_contact[2].indexOf("(") > 0)
444                tokens_contact[2] = tokens_contact[2].substr(0, (tokens_contact[2].indexOf("("))-2);
445                        var final_contact;
446                        if(tokens_contact[3] == undefined)               
447                                final_contact =  "\"" + tokens_contact[0] + " " +  tokens_contact[1] + "\" <" + tokens_contact[2] + ">";
448                        else
449                                final_contact =  "\"" + tokens_contact[0] + " " +  tokens_contact[1] + " " +  tokens_contact[2] + "\" <" + tokens_contact[3] + ">";
450                       
451                var exist = false;
452                var emailList = $("#" + field_ + "_" + id_).val();
453                        var emails_adicionados = emailList.split(",");
454                for(i=0; i<emails_adicionados.length -1; i++) {
455                        emails_adicionados[i].replace(/^\s+|\s+$/g, '');
456                        if(emails_adicionados[i] == final_contact) {
457                                        emails_adicionados[i] = "%";
458                                exist = true;
459                                }
460                        }
461                if (exist == false)
462                                return false;
463                        var novos_contatos = emails_adicionados.join(","); 
464            novos_contatos = novos_contatos.replace(/%,/g, "");
465                $("#" + field_ + "_" + id_).val(novos_contatos);
466                }
467       
468             
469        /* Decoder utf8 */     
470    function utf8_decoder ( str_data ) {
471            var tmp_arr = [], i = 0, ac = 0, c1 = 0, c2 = 0, c3 = 0;
472            str_data += '';
473        while ( i < str_data.length ) {
474                c1 = str_data.charCodeAt(i);
475            if (c1 < 128) {
476                    tmp_arr[ac++] = String.fromCharCode(c1);
477                    i++;
478            } else if ((c1 > 191) && (c1 < 224)) {
479                            c2 = str_data.charCodeAt(i+1);
480                            tmp_arr[ac++] = String.fromCharCode(((c1 & 31) << 6) | (c2 & 63));
481                            i += 2;
482                        } else {
483                                    c2 = str_data.charCodeAt(i+1);
484                                    c3 = str_data.charCodeAt(i+2);
485                                    tmp_arr[ac++] = String.fromCharCode(((c1 & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
486                                    i += 3;
487                                }
488            }
489 
490            return tmp_arr.join('');
491        }
492       
493             
494        /* Mostra tela de help */       
495    function show_help() {
496                $(function() {
497                        $( "#dialog-modal_help" ).dialog({
498                                                resizable: false,
499                                                width: 540,
500                                                modal: true,
501                                                closeOnEscape: true
502                        });
503                });
504        }       
505                 
506             
507        emQuickCatalogSearch.prototype.showWindow = function (div) {
508                $(this).bind('keydown');
509                                $(function() {
510                    $( "#dialog:ui-dialog" ).dialog( "destroy" );                   
511                    $( "#dialog-modal" ).dialog({
512                                                resizable: false,
513//                      height: "auto",
514                        width: 780,
515                                                modal: true,
516                        position: 'bottom',
517                                                closeOnEscape: true,
518                                                close: function (event, ui) {
519                                                        event.stopPropagation();
520                                $(this).unbind('keydown');
521                                if (is_ie) {
522                                        var range= document.getElementById(field_ + "_" + id_).createTextRange();
523                                        range.collapse(false);
524                                        range.select();
525                                } else {
526                                        document.getElementById(field_ + "_" + id_).focus();   
527                                }
528                        },
529                        open: function () {
530                                $("#selectable li:first button:first").focus();   
531                                                },
532                                                focus: function (event, ui) {
533                                //$(this).unbind('keydown');
534                                                },
535                                                beforeClose: function (event, ui) {
536                                $(this).unbind('keydown');
537                                                },
538                        buttons:[
539                                                {
540                                                        text: "Fechar",
541                                                        click: function(){
542                                                                $("#detalhes_contato, #selectable, #busca").empty();
543                                                                $(this).dialog("close");
544                                                                                                if (is_ie) {
545                                                                                                        var range= document.getElementById(field_ + "_" + id_).createTextRange();
546                                                                                                        range.collapse(false);
547                                                                                                        range.select();
548                                                                                                } else {
549                                                                                                                document.getElementById(field_ + "_" + id_).focus();   
550                                                        }
551                                                                                         },
552                                                        style: "margin-top: -2.1em"
553                                                }
554                                        ]
555                                        });
556                });
557                $(".ui-dialog .ui-dialog-titlebar")
558                .append('<a href="#" class="ui-dialog-titlebar-minimize ui-corner-all" role="button"><span class="ui-icon ui-icon-minusthick">minimize</span></a>')
559                .find('.ui-dialog-titlebar-minimize').click(function() {
560                        $(".ui-dialog-buttonpane, .ui-dialog-content").toggle();
561                        $(".ui-icon-minusthick, .ui-icon-newwin").toggleClass('ui-icon-minusthick').toggleClass('ui-icon-newwin');
562                });
563       
564                $("#dialog-modal button, input.button").button();                               
565        }
566
567       
568        /* Build the Object */
569        //QuickCatalogSearch;
570        QuickCatalogSearch = new emQuickCatalogSearch();
Note: See TracBrowser for help on using the repository browser.