function emQuickCatalogSearch () { this.arrayWin = new Array(); this.el; this.cc_contacts = new Array(); this.cc_groups = new Array(); } emQuickCatalogSearch.prototype.showList = function(data, begin, end, ID, field) { data_ = data; id_ = ID; field_ = field; begin_ = begin; end_ = end; keypress_read(data); init_results(data); configure_slider(data); details_results(data); connector.loadScript("ccQuickAdd"); if(preferences.use_shortcuts == '0'){ connector.loadScript("shortcut"); } id = '1'; _this = this; var el_A = document.createElement("DIV"); el_A.style.visibility = "hidden"; el_A.style.position = "absolute"; el_A.style.left = "0px"; el_A.style.top = "0px"; el_A.style.width = "0px"; el_A.style.height = "0px"; el_A.id = 'window_QuickCatalogSearch_A'; document.body.appendChild(el_A); el_A.innerHTML = ""; func_add_contact = function () { }; _this.showWindow(el_A); } function keypress_read(data) { $("#dialog-modal").keypress(function (e) { var keyCode = e.keyCode || e.which, arrow = {left: 37, up: 38, right: 39, down: 40, enter: 13, esc: 27 }; var slider = $( "#slider" ); switch (keyCode) { case arrow.enter: add_contact_field(document.getElementsByClassName("ui-selected")[0].getElementsByClassName("name_contact")[0].innerHTML); $("#dialog-modal").dialog("close"); break; case arrow.left: slider.slider( "value", $( "#slider" ).slider( "value" ) - 1); create_list(data_); break; case arrow.right: if( (($( "#slider" ).slider( "value" ))) == Math.ceil(data_.length/7) ) { alert("Não há mais páginas"); break; } slider.slider( "value", $( "#slider" ).slider( "value" ) + 1); create_list(data_); break; case arrow.up: id_contact = document.getElementsByClassName("ui-selected")[0].value; if(id_contact == (($( "#slider" ).slider( "value" ) -1)*7)) break; var line_contact = $('li.ui-selected'); $('li.ui-selected').prev().removeClass("ui-selectee").addClass("ui-selected"); //css('background-color', '#72A9D3'); line_contact.removeClass("ui-selected").addClass("ui-selectee"); var details = $("#detalhes_contato").empty(); $( ".ui-selected", this ).each(function() { if(data_['type_catalog'] == 'G') { var extra_fields = (data_['extra_ldap_fields']).split("#"); /* Default fields */ details.append("" + utf8_decoder(data_[this.value].cn[0])); details.append("
" + data_[this.value].mail[0]); details.append("

Matrícula
"); details.append(data_[this.value].employeenumber[0] + "
"); details.append("
Telefone
"); details.append(data_[this.value].telephonenumber[0] + "
"); details.append(data_[this.value].telephonenumber[0]); for (var i=0; i
" + campo); details.append("
" + data_[this.value][valor][0]); } } } else { if(data_['type_catalog'] == 'P') { /* Default fields */ details.append("" + utf8_decoder(data_[this.value].cn)); details.append("
" + data_[this.value].mail); if(data_[this.value].telephonenumber != "") { details.append("


Telefone
"); details.append(data_[this.value].telephonenumber + "
"); } } else { var extra_fields = (data_['extra_ldap_fields']).split("#"); /* Default fields */ details.append("" + utf8_decoder(data_[this.value].cn)); details.append("
" + data_[this.value].mail); if(data_[this.value].telephonenumber != "") { details.append("


Telefone
"); details.append(data_[this.value].telephonenumber + "
"); } if(data_[this.value].mail[0].length > 1) { for (var i=0; i
" + campo); details.append("
" + data_[this.value][valor][0]); } } } } } }); break; case arrow.down: id_contact = document.getElementsByClassName("ui-selected")[0].value; if((id_contact == (((((parseInt($( "#slider" ).slider( "value" )) - 1)*7))+7)-1)) || id_contact == data_.length - 2 || data_.length == 1) break; var line_contact = $('li.ui-selected'); $('li.ui-selected').next().removeClass("ui-selectee").addClass("ui-selected"); line_contact.removeClass("ui-selected").addClass("ui-selectee"); var details = $("#detalhes_contato").empty(); $( ".ui-selected", this ).each(function() { if(data_['type_catalog'] == 'G') { var extra_fields = (data_['extra_ldap_fields']).split("#"); /* Default fields */ details.append("" + utf8_decoder(data_[this.value].cn[0])); details.append("
" + data_[this.value].mail[0]); details.append("

Matrícula
"); details.append(data_[this.value].employeenumber[0] + "
"); details.append("
Telefone
"); details.append(data_[this.value].telephonenumber[0] + "
"); details.append(data_[this.value].telephonenumber[0]); for (var i=0; i
" + campo); details.append("
" + data_[this.value][valor][0]); } } } else { if(data_['type_catalog'] == 'P') { /* Default fields */ details.append("" + utf8_decoder(data_[this.value].cn)); details.append("
" + data_[this.value].mail); if(data_[this.value].telephonenumber != "") { details.append("


Telefone
"); details.append(data_[this.value].telephonenumber + "
"); } } else { var extra_fields = (data_['extra_ldap_fields']).split("#"); /* Default fields */ details.append("" + utf8_decoder(data_[this.value].cn)); details.append("
" + data_[this.value].mail); if(data_[this.value].telephonenumber != "") { details.append("


Telefone
"); details.append(data_[this.value].telephonenumber + "
"); } if(data_[this.value].mail[0].length > 1) { for (var i=0; i
" + campo); details.append("
" + data_[this.value][valor][0]); } } } } } }); break; } }); } /* * Método que cria a lista de contatos */ function create_list(data) { $("#detalhes_contato").empty(); var paginas = Math.ceil(data.length/7) - 1; $("#title_usuarios").html( get_lang("Results") ); var string_results = $( "#slider" ).slider( "value" ) + " " + get_lang("of") + " " + paginas + " (" + data.length + " " + get_lang("Results") + ")"; var selectable = $("#selectable"); selectable.empty(); var Ul = document.createElement("ul"); var Op = document.createElement("li"); for (i=(($( "#slider" ).slider( "value" ) -1)*7)+1; i<((($( "#slider" ).slider( "value" ) -1)*7)+1)+7; i++) { if(i >= data.length) break; if (data['type_catalog'] != 'G' && (data[i-1].mail == null || data[i-1].mail == "")) data[i-1].mail = "No mail"; if(i == ((($( "#slider" ).slider( "value" ) -1)*7)+1)){ Op.setAttribute("class", "ui-selected"); } else { Op.setAttribute("class", "ui-selectee"); } var contact_name = utf8_decoder(data[i-1].cn); if(contact_name.substring(contact_name.toLowerCase().indexOf(data.search_for.toLowerCase())) != -1) contact_name = contact_name.substring(0, contact_name.toLowerCase().indexOf(data.search_for.toLowerCase())) + "" + contact_name.substr(contact_name.toLowerCase().indexOf(data.search_for.toLowerCase()), data.search_for.length) + "" + contact_name.substring(contact_name.toLowerCase().indexOf(data.search_for.toLowerCase()) + data.search_for.length); Op.innerHTML = '
' + contact_name + '' + utf8_decoder(data[i-1].mail) + '
'; $(Op).val(i - 1); Ul.appendChild(Op); selectable.append(Ul.innerHTML); } $( "#amount" ).val( string_results ); $( "#amount" ).val( $( "#slider" ).slider( "value" ) + " " + get_lang("of") + " " + paginas + " (" + data.length + " " + get_lang("Results") + ")"); document.getElementById("amount").focus(); } function details_results(data) { $(function() { $( "#selectable" ).selectable({ stop: function() { var details = $("#detalhes_contato").empty(); $( ".ui-selected", this ).each(function() { if(data['type_catalog'] == 'G') { var extra_fields = (data['extra_ldap_fields']).split("#"); /* Default fields */ details.append("" + utf8_decoder(data[this.value].cn[0])); details.append("
" + data[this.value].mail[0]); details.append("

Matrícula
"); details.append(data[this.value].employeenumber[0] + "
"); details.append("
Telefone
"); details.append(data[this.value].telephonenumber[0] + "
"); details.append(data[this.value].telephonenumber[0]); for (var i=0; i
" + campo); details.append("
" + data[this.value][valor][0]); } } } else { if(data['type_catalog'] == 'P') { /* Default fields */ details.append("" + utf8_decoder(data[this.value].cn)); details.append("
" + data[this.value].mail); if(data[this.value].telephonenumber != "") { details.append("


Telefone
"); details.append(data[this.value].telephonenumber + "
"); } } else { var extra_fields = (data['extra_ldap_fields']).split("#"); /* Default fields */ details.append("" + utf8_decoder(data[this.value].cn)); details.append("
" + data[this.value].mail); if(data[this.value].telephonenumber != "") { details.append("


Telefone
"); details.append(data[this.value].telephonenumber + "
"); } if(data[this.value].mail[0].length > 1) { for (var i=0; i
" + campo); details.append("
" + data[this.value][valor][0]); } } } } } }); } }); }); } /* * Método que inicializa a tela de contatos */ function init_results(data) { var Op = null; var Ul = null; var selectable = $("#selectable"); selectable.empty(); Ul = document.createElement("ul"); Op = document.createElement("li"); var limit = data.length < 7 ? data.length : 7; for (i=1; i<=limit; i++) { Op.setAttribute("class", "ui-selectee"); if(i == 1) Op.setAttribute("class", "ui-selected"); var contact_name = utf8_decoder(data[i-1].cn); if(data['type_catalog'] != 'G' && (data[i-1].mail == null || data[i-1].mail == "")) { data[i-1].mail = "No mail"; } if(contact_name.substring(contact_name.toLowerCase().indexOf(data.search_for.toLowerCase())) != -1) contact_name = contact_name.substring(0, contact_name.toLowerCase().indexOf(data.search_for.toLowerCase())) + "" + contact_name.substr(contact_name.toLowerCase().indexOf(data.search_for.toLowerCase()), data.search_for.length) + "" + contact_name.substring(contact_name.toLowerCase().indexOf(data.search_for.toLowerCase()) + data.search_for.length); Op.innerHTML = '
' + contact_name + '' + utf8_decoder(data[i-1].mail) + '
'; $(Op).val(i - 1); Ul.appendChild(Op); selectable.append(Ul.innerHTML); } $("#adds").html("Foram adicionados " + quantidade_contatos + " contatos."); } /* * Método que configura o slider e os resultados */ function configure_slider(data) { $("#detalhes_contato").empty(); var paginas = Math.ceil(data.length/7); $("#title_usuarios").html( get_lang("Results") ); $(function() { $( "#slider" ).slider({ value:1, min: 1, max: paginas, step: 1, slide: function( event, ui ) { var string_results = ui.value + " " + get_lang("of") + " " + paginas + " (" + data.length + " " + get_lang("Results") + ")"; var selectable = $("#selectable"); selectable.empty(); var Ul = document.createElement("ul"); var Op = document.createElement("li"); for (i=((ui.value-1)*7)+1; i<(((ui.value-1)*7)+1)+7; i++) { if(data['type_catalog'] != 'G' && (data[i-1].mail == null || data[i-1].mail == "")) { data[i-1].mail = "No mail"; } var contact_name = utf8_decoder(data[i].cn); if(contact_name.substring(contact_name.toLowerCase().indexOf(data.search_for.toLowerCase())) != -1) contact_name = contact_name.substring(0, contact_name.toLowerCase().indexOf(data.search_for.toLowerCase())) + "" + contact_name.substr(contact_name.toLowerCase().indexOf(data.search_for.toLowerCase()), data.search_for.length) + "" + contact_name.substring(contact_name.toLowerCase().indexOf(data.search_for.toLowerCase()) + data.search_for.length); Op.setAttribute("class", "ui-selectee"); Op.innerHTML = '
' + contact_name + '' + utf8_decoder(data[i].mail) + '
'; $(Op).val(i); Ul.appendChild(Op); selectable.append(Ul.innerHTML); } $( "#amount" ).val( string_results ); $(this).unbind('keypress'); document.getElementById("amount").focus(); } }); $( "#amount" ).val( $( "#slider" ).slider( "value" ) + " " + get_lang("of") + " " + paginas + " (" + data.length + " " + get_lang("Results") + ")"); }); } function checkEnter(e) { var kC = window.event ? event.keyCode : e && e.keyCode ? e.keyCode : e && e.which ? e.which : null; if (kC) { //$("#dialog-modal").unbind('keypress'); return kC == 13; } else{ return false; } } /* * Faz a busca direto da tela modal */ function buscaContato(param) { $("#busca").empty(); if(param.length == 0) { alert(get_lang("Please enter a parameter to search.")); return false; } if(param.length < preferences.search_characters_number) { alert(get_lang("parameter must be at least") + " " + preferences.search_characters_number + " " + get_lang("characters")); return false; } var catalog = $("#combobox").val(); var handler_emQuickSearch = function(data) { data_ = data; if(data_.length > 0) { init_results(data_); configure_slider(data_); details_results(data_); } else { $("#detalhes_contato, #selectable").empty(); configure_slider(data); } } cExecute ("$this.ldap_functions.quicksearchcontact&search_for="+param+"&field=TO&ID=0&catalog="+catalog, handler_emQuickSearch); } quantidade_contatos = 0; /* * Método que adiciona o contato selecionado no campo do email (To, CC, CCo) */ function add_contact_field(contact) { quantidade_contatos++; $("#adds").html("Foram adicionados " + quantidade_contatos + " contatos."); var emailList = document.getElementById(field_ + "_" + id_).value; var contact_parsed = contact.replace(/<\/?[^>]+>/gi, ' '); contact_parsed = contact_parsed.replace(/^\s+|\s+$/gi, "").replace(/\s{2,}/gi, "|"); var tokens_contact = contact_parsed.split("|"); if (tokens_contact[1].indexOf("(") > 0) tokens_contact[1] = tokens_contact[1].substr(0, (tokens_contact[1].indexOf("("))-2); var final_contact; if(tokens_contact[2] == undefined) final_contact = "\"" + tokens_contact[0] + " " + "\" <" + tokens_contact[1] + ">, "; else { if(tokens_contact[3] == undefined) final_contact = "\"" + tokens_contact[0] + " " + tokens_contact[1] + "\" <" + tokens_contact[2] + ">, "; else final_contact = "\"" + tokens_contact[0] + " " + tokens_contact[1] + " " + tokens_contact[2] + "\" <" + tokens_contact[3] + ">, "; } if (emailList[0] != '"') emailList = emailList.substr(end_); if(emailList.lastIndexOf(",") > 0) emailList = emailList.substr(0, emailList.lastIndexOf(",") + 2); new_emailList = emailList + final_contact; document.getElementById(field_ + "_" + id_).value = new_emailList; document.getElementById(field_ + "_" + id_).focus(); $(this).unbind('keypress'); $(this).dialog("close"); } /* * Método que remove o contato selecionado no campo do email (To, CC, CCo) */ function remove_contact_field(contact) { var contact_parsed = contact.replace(/<\/?[^>]+>/gi, ' '); contact_parsed = contact_parsed.replace(/^\s+|\s+$/gi, "").replace(/\s{2,}/gi, "|"); var tokens_contact = contact_parsed.split("|"); if (tokens_contact[2].indexOf("(") > 0) tokens_contact[2] = tokens_contact[2].substr(0, (tokens_contact[2].indexOf("("))-2); var final_contact; if(tokens_contact[3] == undefined) final_contact = "\"" + tokens_contact[0] + " " + tokens_contact[1] + "\" <" + tokens_contact[2] + ">"; else final_contact = "\"" + tokens_contact[0] + " " + tokens_contact[1] + " " + tokens_contact[2] + "\" <" + tokens_contact[3] + ">"; if(quantidade_contatos ==0) { alert("Nenhum contato adicionado!"); return false; } var encontrou = false; var emailList = document.getElementById(field_ + "_" + id_).value; var emails_adicionados = emailList.split(","); var quantidade_excluidos = 0; for(i=0; i 191) && (c1 < 224)) { c2 = str_data.charCodeAt(i+1); tmp_arr[ac++] = String.fromCharCode(((c1 & 31) << 6) | (c2 & 63)); i += 2; } else { c2 = str_data.charCodeAt(i+1); c3 = str_data.charCodeAt(i+2); tmp_arr[ac++] = String.fromCharCode(((c1 & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63)); i += 3; } } return tmp_arr.join(''); } function show_help() { $(function() { $( "#dialog-modal_help" ).dialog({ resizable: false, height: 230, width: 540, modal: true, closeOnEscape: true, }); }); } emQuickCatalogSearch.prototype.showWindow = function (div) { $(this).bind('keypress'); $(function() { $( "#dialog:ui-dialog" ).dialog( "destroy" ); $( "#dialog-modal" ).dialog({ resizable: false, height: 530, width: 940, modal: true, closeOnEscape: true, close: function (event, ui) { event.stopPropagation(); $(this).unbind('keypress'); }, focus: function (event, ui) { $(this).bind('keypress'); }, beforeClose: function (event, ui) { $(this).bind('keypress'); }, buttons:{ 'Fechar' : function(){ $("#detalhes_contato, #selectable, #busca").empty(); $(this).dialog("close"); } } }); }); if(! div) { alert(get_lang('The list has no participant.')); return; } if(! this.arrayWin[div.id]) { div.style.width = "700px"; div.style.height = "230px"; var title = get_lang('The results were found in the Global Catalog')+':'; var wHeight = div.offsetHeight + "px"; var wWidth = div.offsetWidth + "px"; div.style.width = div.offsetWidth - 5; win = new dJSWin({ id: 'QuickCatalogSearch_'+div.id, content_id: div.id, width: wWidth, height: wHeight, title_color: '#3978d6', bg_color: '#eee', title: title, title_text_color: 'white', button_x_img: '../phpgwapi/images/winclose.gif', border: true, onclose: 'QuickCatalogSearch.restoreShortcuts("'+ div.id +'")'}); this.arrayWin[div.id] = win; win.draw(); } else { win = this.arrayWin[div.id]; } //document.getElementById("window_QuickCatalogSearch").style.visibility = "visible"; //win.open(); //document.getElementById('select_QuickCatalogSearch').focus(); if(is_ie && (preferences.use_shortcuts == '1')){ shortcut.remove('down'); shortcut.remove('up'); shortcut.remove('return'); } } emQuickCatalogSearch.prototype.transfer_result = function (field, ID, begin, end){ cm = document.getElementById('select_QuickCatalogSearch'); option_selected = cm.options[cm.selectedIndex].value + ", "; emailList = document.getElementById(field + "_" + ID).value; new_emailList = emailList.substring(0, begin) + option_selected + emailList.substring((parseInt(end) + 2), emailList.length); document.getElementById(field + "_" + ID).value = new_emailList; document.getElementById(field + "_" + ID).focus(); this.arrayWin['window_QuickCatalogSearch_A'].close(); document.getElementById("window_QuickCatalogSearch").style.visibility = "hidden"; } emQuickCatalogSearch.prototype.close_QuickSearch_window = function (field, ID){ //document.getElementById('QuickCatalogSearch_window_QuickCatalogSearch').style.display = "none"; document.getElementById(field + "_" + ID).focus(); this.arrayWin['window_QuickCatalogSearch_A'].close(); document.getElementById("window_QuickCatalogSearch").style.visibility = "hidden"; if(typeof shortcut.all_shortcuts['down'] == 'undefined'){ if(is_ie && (preferences.use_shortcuts == '1')) { shortcut.add("down",function(){select_msg('null', 'down');},{'disable_in_input':false}); shortcut.add("up",function(){select_msg('null', 'up');},{'disable_in_input':false}); shortcut.add("return",function(){ if ( Element('border_id_0').className==='menu-sel' ) { all_messages = Element('tbody_box').childNodes; for (var i=0; i < all_messages.length; i++) { if ( exist_className(all_messages[i], 'selected_shortcut_msg') ) { Element("td_who_" + all_messages[i].id).onclick(); return; } } } },{'disable_in_input':true}); } } } emQuickCatalogSearch.prototype.restoreShortcuts = function(id) { var search_win = document.getElementById(id); if(typeof shortcut.all_shortcuts['down'] == 'undefined'){ if (search_win.style.visibility == 'visible') { shortcut.add("down",function(){select_msg('null', 'down');},{'disable_in_input':false}); shortcut.add("up",function(){select_msg('null', 'up');},{'disable_in_input':false}); shortcut.add("return",function(){ if ( Element('border_id_0').className==='menu-sel' ) { all_messages = Element('tbody_box').childNodes; for (var i=0; i < all_messages.length; i++) { if ( exist_className(all_messages[i], 'selected_shortcut_msg') ) { Element("td_who_" + all_messages[i].id).onclick(); return; } } } },{'disable_in_input':true}); } } search_win.style.visibility = 'hidden'; } emQuickCatalogSearch.prototype.close_window = function(id) { this.arrayWin[id].close(); var group_values = Element('list_values'); var user_values = Element('user_values'); } emQuickCatalogSearch.prototype.showCatalogList = function (border_id){ var el = Element('catalog_list'); if(el) { Element('border_id').value = border_id; win = this.arrayWin[el.id]; win.open(); return; } var border_input = document.createElement("INPUT"); border_input.type = 'hidden'; border_input.id = 'border_id'; border_input.value = border_id; document.body.appendChild(border_input); el = document.createElement("DIV"); el.id = 'catalog_list'; document.body.appendChild(el); el.style.visibility = "hidden"; el.style.position = "absolute"; el.style.width = "700px"; el.style.height = is_ie ? "360px" : "375px"; el.style.left = "0px"; el.style.top = "0px"; el.innerHTML = ""+ ""+ ""+ '
"+get_lang('Global Catalog')+""+get_lang('Personal Catalog')+"
'+ '

'+ ''+ ''+ ''+ ''+ ''+ ''+ '
'+get_lang("Select an organization and click on button Search")+' :
 '+ ' '+ '  
'+get_lang('Public Lists')+'  '+get_lang('Users')+'     '+ '
'+ ''+ ''+ '
'+get_lang('Click here to add into the fields')+':  '+ ' '+( allow_hidden_copy ? '' : '' )+ '
'+ '
'+ ''; var title = get_lang('Search in the Global Catalog'); var wHeight = el.offsetHeight - (is_ie ? 10 : 0) + "px"; var wWidth = el.offsetWidth + "px"; el.style.width = el.offsetWidth; Element('search_for').onkeypress = function (e) { if ((is_ie && (window.event.keyCode == 13)) || (!is_ie && e.keyCode == 13)) { QuickCatalogSearch.searchCatalogList(true); } }; win = new dJSWin({ id: 'win_'+el.id, content_id: el.id, width: wWidth, height: wHeight, title_color: '#3978d6', bg_color: '#eee', title: title, title_text_color: 'white', button_x_img: '../phpgwapi/images/winclose.gif', border: true}); this.arrayWin[el.id] = win; win.draw(); win.open(); var handler_catalogs = function(data){ var user_catalog = get_lang("Global Catalog"); if(data.length > 1) { Element('select_catalog').style.display = ''; for(i = 0; i < data.length; i++) { Element('select_catalog').options[i] = new Option(data[i],i); if(user_catalog.toUpperCase() == data[i].toUpperCase()) Element('select_catalog').options[i].selected = true; } } } cExecute ("$this.ldap_functions.get_catalogs", handler_catalogs); this.update_organizations(); var handler_cc_contacts= function(data){ if(data && data.length > 0){ var aux = data.split(","); for(var i=0; i< aux.length; i++){ QuickCatalogSearch.cc_contacts[QuickCatalogSearch.cc_contacts.length] = aux[i]; } } } cExecute("$this.db_functions.get_cc_contacts",handler_cc_contacts); var handler_cc_groups = function(data){ if(data && data.length > 0){ var aux = data.split(","); for(var i=0; i < data.length; i++){ QuickCatalogSearch.cc_groups[QuickCatalogSearch.cc_groups.length] = aux[i]; } } } cExecute("$this.db_functions.get_cc_groups",handler_cc_groups); } emQuickCatalogSearch.prototype.select_div = function(element){ if(element == 'tab1'){ Element('tab1').style.display = ''; Element('tab2').style.display = 'none'; Element('td1').style.background = '#eee'; Element('td2').style.background = '#cecece'; } if(element == 'tab2'){ Element('tab1').style.display = 'none'; Element('tab2').style.display = ''; Element('td1').style.background = '#cecece'; Element('td2').style.background = '#eee'; } } emQuickCatalogSearch.prototype.load_catalog = function(){ var _this = this; var content = new Array; var select = Element('list_personal').style.display == 'none'? Element('list_groups'): Element('list_personal'); if(Element('list_personal').style.display == 'none'){ content = _this.cc_groups; }else{ content = _this.cc_contacts; } if(select.options.length > 0){ for(var i=0; i < select.options.length; i++){ select.options[i] = null; i--; } } for(var i=0; i < content.length; i++){ if(content[i] != undefined){ var aux = content[i].split(";"); var opt = new Option(aux[0] + ' (' + aux[1] + ')','"' + aux[0] + '" ' + '<' + aux[1] + '>',false,false); select[select.length] = opt; } } content.splice(0,(content.lenght)); } emQuickCatalogSearch.prototype.update_organizations = function(){ while(Element('select_organization').options.length > 0) { Element('select_organization').remove(0); } var handler_org = function(data){ Element('select_organization').options[0] = new Option(get_lang('all'),'all'); if (data != null){ var user_organization = Element('user_organization').value; for(x = 0; x < data.length; x++) { Element('select_organization').options[x+1] = new Option(data[x].toUpperCase(),data[x]); if(user_organization.toUpperCase() == data[x].toUpperCase()) Element('select_organization').options[x+1].selected = true; } } } cExecute ("$this.ldap_functions.get_organizations&referral=false&catalog="+Element('select_catalog').value, handler_org); } emQuickCatalogSearch.prototype.changeOptions = function(type){ switch(type){ case 'u': Element('list_values').style.display = 'none'; Element('user_values').style.display = ''; break; case 'l': Element('user_values').style.display = 'none'; Element('list_values').style.display = ''; break; case 'p': Element('list_personal').style.display = ''; Element('list_groups').style.display = 'none' QuickCatalogSearch.load_catalog(); break; case 'g': Element('list_personal').style.display = 'none'; Element('list_groups').style.display = '' QuickCatalogSearch.load_catalog(); break; } } emQuickCatalogSearch.prototype.addContacts = function(field) { var border_id = Element('border_id').value; var select = Element('user_values').style.display == 'none' ? Element('list_values') : Element('user_values'); if(field == "to1" || field == "cc1" || field == "cco1"){ field = field.substr(0,field.length - 1); var select = Element('list_personal').style.display == 'none' ? Element('list_groups') : Element('list_personal'); } var fieldOpener = Element(field+"_"+border_id); var not_selected = true; for (i = 0 ; i < select.length ; i++) { if (select.options[i].selected && select.options[i].value != '-1') { if(fieldOpener.value.length > 0 && (fieldOpener.value.lastIndexOf(',') != (fieldOpener.value.length - 1))){ fieldOpener.value += ","; } fieldOpener.value += select.options[i].value + ","; not_selected = false; select.options[i].selected = false; } } if(not_selected) return false; if(field != 'to'){ a_link = Element("a_"+field+"_link_"+border_id); if(a_link) a_link.onclick(); } } emQuickCatalogSearch.prototype.searchCatalogList = function (itemSearch){ if(itemSearch && Element('search_for').value.length < preferences.search_characters_number){ alert(get_lang('Your search argument must be longer than %1 characters.', preferences.search_characters_number)); Element('search_for').focus(); return false; } var organization = Element('select_organization').value; var search = itemSearch ? Element('search_for').value : ''; var catalog = Element('select_catalog').value; var handler_searchResults = function(data){ Element('msg_search').style.visibility = 'hidden'; if(data.error){ alert(get_lang('More than %1 results. Please, try to refine your search.',data.maxResult)); return false; }else if(data.users.length == 0 && data.groups.length == 0){ alert(get_lang('None result was found.')); } var group = Element('list_span'); var user = Element('user_span'); if(is_ie){ group.innerHTML = ''; user.innerHTML = ''; } else { group = Element('list_values'); user = Element('user_values'); for(var i = 0;i < group.options.length; i++) group.options[i--] = null; for(var i = 0;i < user.options.length; i++) user.options[i--] = null; } var arr = new Array(data.maxResult); for(i = 0; data.groups && i < data.groups.length; i++) { // Maneiras diferentes de se montar uma tag OPTION, pois no IE o objeto Option é muito lento. if(is_ie) arr[i] = ''; else group.options[i] = new Option(data.groups[i].name+' ('+data.groups[i].email+')','"'+data.groups[i].name+'" <'+data.groups[i].email+'>'); } if(is_ie) group.innerHTML = ''; arr = new Array(data.maxResult); for(i = 0; data.users && i < data.users.length; i++) { /*******************************************************************************************/ /* O resultado pratico do bloco de codigo a seguir eh a exibicao dos valores em tela, ja que vai verificar se o departamento e o email estao vazios ou nulos e a partir dai o resultado apresentado em tela sera exibido de maneira mais apresentavel; */ //verifica se departamento eh null ou nao; var department = data.users[i].department ? " - " + data.users[i].department : ""; //verifica se email eh null ou nao; var email = data.users[i].email ? data.users[i].email : ""; // Maneiras diferentes de se montar uma tag OPTION, pois no IE o objeto Option é muito lento. if(is_ie) arr[i] = ''; else { 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; } } if(is_ie) user.innerHTML = ''; // Display entries found. var type = (data.groups.length > 0 && data.users.length == 0) ? 'l' : 'u'; Element("type_"+type).checked = true; QuickCatalogSearch.changeOptions(type); } Element('msg_search').style.visibility = 'visible'; cExecute ("$this.ldap_functions.catalogsearch&organization="+organization+"&search_for="+search+"&catalog="+catalog, handler_searchResults); } /* Build the Object */ //QuickCatalogSearch; QuickCatalogSearch = new emQuickCatalogSearch();