/**************************************************************************\ Início \**************************************************************************/ function searchE(){ this.searchW = new Array; this.name_box_search = ""; this.all_boxes = new Array; this.type = ""; this.fields = new Array("_ass","_de","_body","_para","_cc","_cco"); } //Monta os forms dentro da janela; searchE.prototype.showForms = function(value){ // Principal if(!Element("window_search")) { var form_search = document.createElement("DIV"); form_search.style.visibility = 'hidden'; form_search.style.top = '0px'; form_search.style.left = '0px'; form_search.id = "window_search"; document.body.appendChild(form_search); } // Pesquisa if(!Element("div_form_search")){ var div_form_search = document.createElement("DIV"); div_form_search.id = "div_form_search"; div_form_search.style.position = "absolute"; div_form_search.style.left = "10px"; div_form_search.style.top = "10px"; div_form_search.style.width = "635px"; div_form_search.style.height = "200px"; div_form_search.style.borderStyle = "outset"; div_form_search.style.borderColor = "black"; div_form_search.style.borderWidth = "1px"; div_form_search.style.overflow = "hidden"; div_form_search.innerHTML = ""; var call_form_search = EsearchE.mount_form(); div_form_search.appendChild(call_form_search); form_search.appendChild(div_form_search); } if(!Element("div_button_search")){ var div_button_search = document.createElement("DIV"); div_button_search.id = "div_button_search"; div_button_search.style.position = "absolute"; div_button_search.style.left = "10px"; div_button_search.style.top = "223px"; div_button_search.style.width = "600px"; div_button_search.style.height = "25px"; div_button_search.innerHTML = ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ "
" + get_lang('Result of the search') + " .: "+ "
"; form_search.appendChild(div_button_search); } if(!Element("table_layer")){ var table_layer = document.createElement("DIV"); table_layer.id = "table_layer"; table_layer.innerHTML = "
"+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ "
PastaQuemAssuntoDataTamanho
"; table_layer.style.position = "absolute"; table_layer.style.left = "10px"; table_layer.style.top = "238px"; table_layer.style.width = "638px"; form_search.appendChild(table_layer); } // Resultado if(!Element("div_form_result")){ var div_form_result = document.createElement("DIV"); div_form_result.id = "div_form_result"; div_form_result.style.position = "absolute"; div_form_result.style.left = "10px"; div_form_result.style.top = "270px"; div_form_result.style.width = "635px"; div_form_result.style.height = "120px"; div_form_result.style.borderStyle = "outset"; div_form_result.style.borderColor = "black"; div_form_result.style.borderWidth = "1px"; div_form_result.style.overflow = "auto"; div_form_result.innerHTML = ""; form_search.appendChild(div_form_result); } EsearchE.showWindow(Element("window_search")); // Cria as caixas postais; EsearchE.mount_folders(); if(value){ Element("check_all_msg").checked = true; EsearchE.all_mailboxes(); EsearchE.func_search(value); } } //Form searchE.prototype.mount_form = function(value){ var form_sch = document.createElement("FORM"); form_sch.id = "form_sch"; form_sch.innerHTML = ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ "
" + get_lang('It informs the search in the boxes of text') + " : "+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ "
 " + get_lang('It searches messages in these folders') + " :
"+ "
"+ "
" + get_lang('In all the folders') + "
"+ "
" + get_lang('From') + " .:
" + get_lang('To') + ".:
" + get_lang('Cc') + " .:
" + get_lang('Subject') + " .:
" + get_lang('Message body') + " .:
"; return form_sch; } // Pastas; searchE.prototype.mount_folders = function(){ connector.loadScript("TreeS"); if( document.getElementById("div_folders_search") == null){ var div_folders = document.createElement("DIV"); div_folders.id = "div_folders_search"; div_folders.style.width = "155px"; div_folders.style.height = "152px"; div_folders.style.borderStyle = "outset"; div_folders.style.borderColor = "black"; div_folders.style.borderWidth = "1px"; div_folders.style.background = "#F7F7F7"; div_folders.style.overflow = "auto"; div_folders.innerHTML = ""; var dest_div = document.getElementById("folders"); dest_div.appendChild(div_folders); } ttree.make_tree(folders,"div_folders_search","_folders_tree_search","","","",""); } // Monta Resultado no Box searchE.prototype.mount_result_box = function(data){ var label = "Resultado da Pesquisa"; Element("border_id_0").innerHTML = " " + label + ' [  / 0]'; draw_box(new Array(), "_search"); draw_paging(0); // alternate_border(0); } // Form resultado; searchE.prototype.mount_result = function(data){ //this.func_clean(); var nw_array = new Array; var var_tmp = data.split("##"); var cont = parseInt(0); var div_form = document.getElementById("div_form_result"); var_tmp.sort(); for(var i=0; i < var_tmp.length; i++){ if(var_tmp[i] != ""){ nw_array[cont] = var_tmp[i]; cont++; } } if(document.getElementById("table_result") != null){ var cl = document.getElementById("table_result"); cl.parentNode.removeChild(cl); } var table = document.createElement("TABLE"); table.id = "table_result"; table.width = "100%"; if(is_ie){ table.cellPadding = '0'; table.cellSpacing = '0'; table.setAttribute("border","1"); }else{ table.setAttribute( "cellspacing", "0"); table.setAttribute( "cellpadding", "0"); table.setAttribute( "border", "1"); } var tbody = document.createElement("TBODY"); if(nw_array.length > 0){ Element('num_search_results').innerHTML = " "+nw_array.length +" mensagens encontradas."; } else Element('num_search_results').innerHTML = ''; for( var i=0; i < nw_array.length; i++){ var tr = document.createElement("TR"); var color = "#F7F7F7"; tr.style.background = color; var aux = nw_array[i].split("--"); for(var j=0 ; j < aux.length ; j++){ var mailbox = aux[0]; var uid_msg = aux[5]; var td = document.createElement("TD"); if( j <= 4){ if( j == 0){ td.width = "20%"; var nm_box = aux[0].split(cyrus_delimiter); var td1 = nm_box.pop(); if(td1 == "INBOX"){ var td1 = "Caixa de Entrada"; } } if( j == 1){ td.width = "30%"; var td1 = aux[1]; } if( j == 2){ var subject_encode = url_encode(aux[2]); td.width = "30%"; var td1 = '' + aux[2].substr(0,25) + '...'; } if( j == 3){ td.width = "10%"; td.align = "center"; var td1 = aux[3]; } if( j == 4){ td.width = "10%"; td.align = "center"; var td1 = aux[4]; } td.innerHTML = td1; tr.appendChild(td); } } aux.splice(0,(aux.length)); tbody.appendChild(tr); } table.appendChild(tbody); div_form.appendChild(table); } searchE.prototype.open_msg = function(mailbox, uid_msg, subject){ var handler_get_msg = function(data){ if(Element("border_id_" + uid_msg + "_r")){alert(get_lang("This message is already opened!"));} else{draw_message(data,create_border(url_decode(subject), uid_msg + "_r"));} } var args = "$this.imap_functions.get_info_msg"; var params = "msg_number=" + uid_msg + "&msg_folder=" + mailbox; cExecute(args,handler_get_msg,params); } // Adiciona caixas postais na busca; searchE.prototype.add_mailboxes = function(){ var sel = document.getElementById("sel_search_nm_box1"); var name_box = this.name_box_search.split(cyrus_delimiter); if(this.name_box_search == "") return false; var name_box_def = ""; if(name_box.length != 1){ name_box_def = name_box[(name_box.length-1)]; }else{ name_box_def = "Caixa de Entrada"; } if( sel.length > 0){ for(var i=0; i < sel.options.length; i++){ if(sel.options[i].value == this.name_box_search){ alert(get_lang('This message is already selected!')); return false; } } } var opt = new Option(name_box_def,this.name_box_search,false,true); sel[sel.length] = opt; } // Remove as caixas postais na busca; searchE.prototype.del_mailboxes = function(){ var sel = document.getElementById("sel_search_nm_box1"); if(sel.length > 0){ for(var i=0; i < sel.options.length; i++){ if(sel.options[i].selected == true){ sel.options[i] = null; i--; } } } } // todas as caixas searchE.prototype.all_mailboxes = function(){ var value = document.getElementById("check_all_msg").checked; var cont = parseInt(0); if(value){ if(EsearchE.all_boxes.length > 0){ EsearchE.all_boxes.splice(0,(EsearchE.all_boxes.length)); } for(var i=0; i < folders.length; i++){ EsearchE.all_boxes[cont] = folders[i].folder_id; cont++; } }else{ EsearchE.all_boxes.splice(0,(EsearchE.all_boxes.length)); } } // Search; searchE.prototype.func_search = function(value){ var fields = "##"; // Verifica se os campos estão preenchidos; if(document.getElementById("txt_ass").value != "" && trim(document.getElementById("txt_ass").value) != ""){ fields += "SUBJECT " + "<=>" +url_encode(document.getElementById("txt_ass").value) + " "; } if(document.getElementById("txt_body").value != "" && trim(document.getElementById("txt_body").value) != ""){ fields += "BODY " + "<=>" + url_encode(document.getElementById("txt_body").value) + " "; } if(document.getElementById("txt_de").value != "" && trim(document.getElementById("txt_de").value) != ""){ fields += "FROM " + "<=>" + url_encode(document.getElementById("txt_de").value) + " "; } if(document.getElementById("txt_para").value != "" && trim(document.getElementById("txt_para").value) != ""){ fields += "TO " + "<=>" + url_encode(document.getElementById("txt_para").value) + " "; } if(document.getElementById("txt_cc").value != "" && trim(document.getElementById("txt_cc").value) != ""){ fields += "CC " + "<=>" + url_encode(document.getElementById("txt_cc").value) + " "; } if(value) { fields += "ALL " + "<=>" + url_encode(value) + " "; } /*if(document.getElementById("txt_cco").value != "" && trim(document.getElementById("txt_cco").value) != ""){ fields += "BCC " + "<=>" + url_encode(document.getElementById("txt_cco").value) + " "; }*/ fields += "##"; if(fields == "####"){ alert(get_lang("Define some parameters to search!")); return false; } if(document.getElementById("check_all_msg").checked){ var nm_box = new Array; for(var i=0; i < EsearchE.all_boxes.length; i++){ nm_box[i] = EsearchE.all_boxes[i] + fields; } }else{ var nm_box = new Array; var sel_combo = document.getElementById("sel_search_nm_box1"); if( sel_combo.options.length <= 0){ alert("Defina quais as caixas para busca!"); return false; } for(var i=0; i < sel_combo.options.length; i++){ sel_combo.options[i].selected = true; } for(var i=0; i < sel_combo.options.length; i++){ if(sel_combo.options[i].selected == true){ nm_box[nm_box.length] = sel_combo.options[i].value + fields; } } } var handler = function(data){ if(data == "none"){alert(get_lang("None result was found."));} else if(data == "many results"){alert(get_lang("More than %1 results. Please, try to refine your search.",50));} // else{EsearchE.mount_result_box(data);} else{EsearchE.mount_result(data);} } var args = "$this.imap_functions.search_msg"; var params = "condition=" + nm_box; cExecute(args,handler,params); } // clean; searchE.prototype.func_clean = function(){ Element('num_search_results').innerHTML = ''; // Limpa os campos; for(var i=0; i < this.fields.length; i++){ if(Element("txt" + this.fields[i]) != null){Element("txt" + this.fields[i]).value = "";} } if(Element("check_all_msg") != null){Element("check_all_msg").checked = false;} EsearchE.all_boxes.splice(0,(EsearchE.all_boxes.length)); // Limpa a select; if(document.getElementById("sel_search_nm_box1") != null){ var sel = document.getElementById("sel_search_nm_box1"); if(sel.length > 0){ for(var i=0; i< sel.options.length; i++){ sel.options[i] = null; i--; } } } if(document.getElementById("table_result") != null){ var cl = document.getElementById("table_result"); cl.parentNode.removeChild(cl); } } // close searchE.prototype.func_close = function(type){ Element('num_search_results').innerHTML = ''; var _this = this; _this.name_box_search = ""; EsearchE.all_boxes.splice(0,(EsearchE.all_boxes.length)); _this.type = type; _this.searchW['window_search'].close(); } // Monta a janela em tela; searchE.prototype.showWindow = function(div){ if(!this.searchW[div.id]) { div.style.width = "660px"; div.style.height = "400px"; div.style.visibility = "hidden"; div.style.position = "absolute"; div.style.zIndex = "10003"; var title = ':: Pesquisar ::'; var wHeight = div.offsetHeight + "px"; var wWidth = div.offsetWidth + "px"; win = new dJSWin({ id: 'ccList'+div.id, content_id: div.id, width: wWidth, height: wHeight, title_color: '#3978d6', bg_color: '#eee', title: title, title_text_color: 'white', button_y_img: '../phpgwapi/images/win_min.gif', button_x_img: '../phpgwapi/images/winclose.gif', border: true }); this.searchW[div.id] = win; win.draw(); }else{ var _this = this; win = this.searchW[div.id]; if((_this.type == "close" && win.state == 0) || win.state == 2){EsearchE.func_clean();} win.draw(); } win.open(); } // Cria o objeto var EsearchE; EsearchE = new searchE();