/**
* Roundcube Webmail Client Script
*
* This file is part of the Roundcube Webmail client
*
* @licstart The following is the entire license notice for the
* JavaScript code in this file.
*
* Copyright (C) The Roundcube Dev Team
* Copyright (C) Kolab Systems AG
*
* The JavaScript code in this page is free software: you can
* redistribute it and/or modify it under the terms of the GNU
* General Public License (GNU GPL) as published by the Free Software
* Foundation, either version 3 of the License, or (at your option)
* any later version. The code is distributed WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU GPL for more details.
*
* As additional permission under GNU GPL version 3 section 7, you
* may distribute non-source (e.g., minimized or compacted) forms of
* that code without the copy of the GNU GPL normally required by
* section 4, provided you include this license notice and a URL
* through which recipients can access the Corresponding Source.
*
* @licend The above is the entire license notice
* for the JavaScript code in this file.
*
* @author Thomas Bruederli <roundcube@gmail.com>
* @author Aleksander 'A.L.E.C' Machniak <alec@alec.pl>
* @author Charles McNulty <charles@charlesmcnulty.com>
*
* @requires jquery.js, common.js, list.js
*/
function rcube_webmail(){this.labels={};this.buttons={};this.buttons_sel={};this.gui_objects={};this.gui_containers={};this.commands={};this.command_handlers={};this.onloads=[];this.messages={};this.group2expand={};this.http_request_jobs={};this.menu_stack=[];this.menu_buttons={};this.entity_selectors=[];this.image_style={};this.uploads={};this.dblclick_time=500;this.message_time=5E3;this.preview_delay_select=400;this.preview_delay_click=60;this.identifier_expr=/[^0-9a-z_-]/gi;this.env={request_timeout:180,
draft_autosave:0,comm_path:"./",recipients_separator:",",recipients_delimiter:", ",popup_width:1150,popup_width_small:900,thread_padding:"15px"};this.ref="rcmail";var h=this;$.ajaxSetup({cache:!1,timeout:1E3*this.env.request_timeout,error:function(a,b,d){h.http_error(a,b,d)},beforeSend:function(a){a.setRequestHeader("X-Roundcube-Request",h.env.request_token)}});$(window).on("beforeunload",function(){h.unload=!0});this.set_env=function(a,b){if(null==a||"object"!==typeof a||b)this.env[a]=b;else for(var d in a)this.env[d]=
a[d]};this.add_label=function(a,b){"string"==typeof a?this.labels[a]=b:"object"==typeof a&&$.extend(this.labels,a)};this.register_button=function(a,b,d,e,f,g){b={id:b,type:d};e&&(b.act=e);f&&(b.sel=f);g&&(b.over=g);this.buttons[a]||(this.buttons[a]=[]);this.buttons[a].push(b);this.loaded&&(this.init_button(a,b),this.set_button(a,this.commands[a]?"act":"pas"))};this.register_menu_button=function(a,b){if(this.menu_buttons[b])this.menu_buttons[b][0].push(a);else{var d=[];$("#"+b).find("a").each(function(){var e=
$(this);var f=(f=e.attr("onclick"))&&String(f).match(/rcmail\.command\('([^']+)/)?RegExp.$1:function(){return e.is(".active")};d.push(f)});d.length&&(this.menu_buttons[b]=[[a],d])}this.set_menu_buttons()};this.set_menu_buttons=function(){clearTimeout(this.menu_buttons_timeout);this.menu_buttons_timeout=setTimeout(function(){$.each(h.menu_buttons,function(){var a=!0;$.each(this[1],function(){var b="function"==typeof this;if(b&&this()||!b&&h.commands[this])return a=!1});$(this[0]).add($(this[0]).parent(".dropbutton")).addClass(a?
"disabled":"active").removeClass(a?"active":"disabled")})},50)};this.gui_object=function(a,b){this.gui_objects[a]=this.loaded?rcube_find_object(b):b};this.gui_container=function(a,b){this.gui_containers[a]=b};this.add_element=function(a,b){this.gui_containers[b]&&this.gui_containers[b].jquery&&this.gui_containers[b].append(a)};this.register_command=function(a,b,d){this.command_handlers[a]=b;d&&this.enable_command(a,!0)};this.add_onload=function(a){this.onloads.push(a)};this.init=function(){var a;
this.task=this.env.task;if(409==this.env.server_error||bw.dom&&bw.xmlhttp_test()){this.env.blankpage||(this.env.blankpage="about:blank");for(a in this.gui_containers)this.gui_containers[a]=$("#"+this.gui_containers[a]);for(a in this.gui_objects)this.gui_objects[a]=rcube_find_object(this.gui_objects[a]);this.init_buttons();this.is_framed()&&parent.rcmail.unlock_frame();this.enable_command("close","logout","mail","addressbook","settings","save-pref","compose","undo","about","switch-task","menu-open",
"menu-close","menu-save",!0);this.set_button(this.task,"sel");this.env.permaurl&&this.enable_command("permaurl","extwin",!0);switch(this.task){case "mail":this.enable_command("list","checkmail","add-contact","search","reset-search","collapse-folder","import-messages",!0);if(this.gui_objects.messagelist){this.env.widescreen_list_template=[{className:"threads",cells:["threads"]},{className:"subject",cells:["fromto","date","status","subject"]},{className:"flags",cells:["flag","attachment"]}];this.message_list=
new rcube_list_widget(this.gui_objects.messagelist,{multiselect:!0,multiexpand:!0,draggable:!0,keyboard:!0,column_movable:this.env.col_movable,dblclick_time:this.dblclick_time});this.message_list.addEventListener("initrow",function(g){h.init_message_row(g)}).addEventListener("dblclick",function(g){h.msglist_dbl_click(g)}).addEventListener("keypress",function(g){h.msglist_keypress(g)}).addEventListener("select",function(g){h.msglist_select(g)}).addEventListener("dragstart",function(g){h.drag_start(g)}).addEventListener("dragmove",
function(g){h.drag_move(g)}).addEventListener("dragend",function(g){h.drag_end(g)}).addEventListener("expandcollapse",function(g){h.msglist_expand(g)}).addEventListener("column_replace",function(g){h.msglist_set_coltypes(g)}).init();$(this.message_list.thead).on("click","a.sortcol",function(g){return h.command("sort",$(this).attr("rel"),this)});this.enable_command("toggle_status","toggle_flag","sort",!0);this.enable_command("set-listmode",this.env.threads&&!this.is_multifolder_listing());var b=$(this.gui_objects.search_filter).val();
b&&"ALL"!=b?this.filter_mailbox(b):this.command("list");$(this.gui_objects.qsearchbox).val(this.env.search_text).focusin(function(){h.message_list.blur()})}this.set_button_titles();this.env.message_commands="show reply reply-all reply-list move copy delete open mark edit viewsource bounce print load-attachment download-attachment show-headers hide-headers download forward forward-inline forward-attachment change-format".split(" ");if("show"==this.env.action||"preview"==this.env.action){if(this.enable_command(this.env.message_commands,
this.env.uid),this.enable_command("reply-list",this.env.list_post),"show"==this.env.action&&this.http_request("pagenav",{_uid:this.env.uid,_mbox:this.env.mailbox,_search:this.env.search_request},this.display_message("","loading")),0<this.env.mail_read_time&&setTimeout(function(){h.http_post("mark",{_uid:h.env.uid,_flag:"read",_mbox:h.env.mailbox,_quiet:1})},1E3*this.env.mail_read_time),this.env.blockedobjects&&($(this.gui_objects.remoteobjectsmsg).show(),this.enable_command("load-remote",!0)),"preview"==
this.env.action&&this.is_framed()&&(this.enable_command("compose","add-contact",!1),parent.rcmail.show_contentframe(!0)),0<=$.inArray("flagged",this.env.message_flags)&&$(document.body).addClass("status-flagged"),this.gui_objects.attachments)$("li > a",this.gui_objects.attachments).not(".drop").on("dragstart",function(g){var k=this.href,l=g.originalEvent.dataTransfer;l&&(k=k.replace(/^https?:\/\//,function(m){return m+urlencode(h.env.username)+"@"}),g=$(this).clone(),g.children().remove(),l.setData("roundcube-uri",
k),l.setData("roundcube-name",$.trim(g.text())))})}else if("compose"==this.env.action)this.env.address_group_stack=[],this.env.compose_commands="send-attachment remove-attachment send cancel toggle-editor list-addresses pushgroup search reset-search extwin insert-response save-response menu-open menu-close load-attachment download-attachment open-attachment rename-attachment".split(" "),this.env.drafts_mailbox&&this.env.compose_commands.push("savedraft"),this.enable_command(this.env.compose_commands,
!0),$.merge(this.env.compose_commands,["add-recipient","firstpage","previouspage","nextpage","lastpage"]),window.googie&&(this.env.editor_config.spellchecker=googie,this.env.editor_config.spellcheck_observer=function(g){h.spellcheck_state()},this.env.compose_commands.push("spellcheck"),this.enable_command("spellcheck",!0)),this.editor_init(this.env.editor_config,this.env.composebody),this.gui_objects.responseslist&&($("a.insertresponse",this.gui_objects.responseslist).attr("unselectable","on").mousedown(function(g){return rcube_event.cancel(g)}).on("mouseup keypress",
function(g){if("mouseup"==g.type||13==rcube_event.get_keycode(g))return h.command("insert-response",$(this).attr("rel")),$(document.body).trigger("mouseup"),rcube_event.cancel(g)}),$.each(this.buttons["save-response"]||[],function(g,k){$("#"+k.id).mousedown(function(l){return rcube_event.cancel(l)})})),this.init_messageform();else if("bounce"==this.env.action)this.init_messageform_inputs(),this.env.compose_commands=[];else if("get"==this.env.action){if(this.enable_command("download",!0),this.enable_command("image-scale",
"image-rotate",!!/^image\//.test(this.env.mimetype)),this.enable_command("print","application/pdf"!=this.env.mimetype||!bw.mz||75<=bw.vendver),this.env.is_message&&(this.enable_command("reply","reply-all","edit","viewsource","forward","forward-inline","forward-attachment","bounce",!0),this.env.list_post&&this.enable_command("reply-list",!0)),this.env.mimetype.startsWith("image/"))$(this.gui_objects.messagepartframe).on("load",function(){var g=$(this).contents();g.find("img").length&&g.find("head").append('<style type="text/css">img { max-width:100%; max-height:100%; } body { display:flex; align-items:center; justify-content:center; height:100%; margin:0; }</style>')})}else"print"!=
this.env.action||!this.env.uid||this.env.is_pgp_content||this.env.pgp_mime_part||this.print_dialog();this.gui_objects.mailboxlist&&(this.env.unread_counts={},this.gui_objects.folderlist=this.gui_objects.mailboxlist,this.http_request("getunread",{_page:this.env.current_page}));this.gui_objects.contactslist&&(this.contact_list=new rcube_list_widget(this.gui_objects.contactslist,{multiselect:!0,draggable:!1,keyboard:!0}),this.contact_list.addEventListener("initrow",function(g){h.triggerEvent("insertrow",
{cid:g.uid,row:g})}).addEventListener("select",function(g){h.compose_recipient_select(g)}).addEventListener("dblclick",function(g){h.compose_add_recipient()}).addEventListener("keypress",function(g){g.key_pressed==g.ENTER_KEY&&(h.compose_add_recipient()||g.last_selected&&"G"==String(g.last_selected).charAt(0)&&$(g.rows[g.last_selected].obj).find("a").first().click())}).init(),$("#_to,#_cc,#_bcc").focus(function(){h.env.focused_field=this}));this.gui_objects.addressbookslist&&(this.gui_objects.folderlist=
this.gui_objects.addressbookslist,this.enable_command("list-addresses",!0));if(this.env.mdn_request&&this.env.uid){b="sendmdn";var d={_uid:this.env.uid,_mbox:this.env.mailbox};confirm(this.get_label("mdnrequest"))||(d._flag="mdnsent",b="mark");this.http_post(b,d)}this.check_mailvelope(this.env.action);this.is_framed()||this.env.extwin||this.browser_capabilities_check();break;case "addressbook":this.env.address_group_stack=[];this.gui_objects.folderlist&&(this.env.contactfolders=$.extend($.extend({},
this.env.address_sources),this.env.contactgroups));this.enable_command("add","import",this.env.writable_source);this.enable_command("list","listgroup","pushgroup","popgroup","listsearch","search","reset-search","advanced-search",!0);this.gui_objects.contactslist&&(this.contact_list=new rcube_list_widget(this.gui_objects.contactslist,{multiselect:!0,draggable:this.gui_objects.folderlist?!0:!1,keyboard:!0}),this.contact_list.addEventListener("initrow",function(g){h.triggerEvent("insertrow",{cid:g.uid,
row:g})}).addEventListener("keypress",function(g){h.list_keypress(g)}).addEventListener("select",function(g){h.contactlist_select(g)}).addEventListener("dragstart",function(g){h.drag_start(g)}).addEventListener("dragmove",function(g){h.drag_move(g)}).addEventListener("dragend",function(g){h.drag_end(g)}).init(),$(this.gui_objects.qsearchbox).focusin(function(){h.contact_list.blur()}),this.update_group_commands(),this.command("list"));this.gui_objects.savedsearchlist&&(this.savedsearchlist=new rcube_treelist_widget(this.gui_objects.savedsearchlist,
{id_prefix:"rcmli",id_encode:this.html_identifier_encode,id_decode:this.html_identifier_decode}),this.savedsearchlist.addEventListener("select",function(g){h.triggerEvent("selectfolder",{folder:g.id,prefix:"rcmli"})}));this.set_page_buttons();this.env.cid&&(this.enable_command("show","edit","qrcode",!0),this.gui_objects.editform&&$("input.groupmember").change(function(){h.group_member_change(this.checked?"add":"del",h.env.cid,h.env.source,this.value)}));this.gui_objects.editform?(this.enable_command("save",
!0),"add"!=this.env.action&&"edit"!=this.env.action&&"search"!=this.env.action||this.init_contact_form()):"print"==this.env.action&&this.print_dialog();break;case "settings":this.enable_command("show","save",!0);"identities"==this.env.action?this.enable_command("add",2>this.env.identities_level):"edit-identity"==this.env.action||"add-identity"==this.env.action?(this.enable_command("save","edit","toggle-editor",!0),this.enable_command("delete",2>this.env.identities_level),this.editor_init(this.env.editor_config,
"rcmfd_signature"),this.check_mailvelope(this.env.action)):"folders"==this.env.action?this.enable_command("subscribe","unsubscribe","create-folder","rename-folder",!0):"edit-folder"==this.env.action&&this.gui_objects.editform?(this.enable_command("save","folder-size",!0),parent.rcmail.env.exists=this.env.messagecount,parent.rcmail.enable_command("purge",this.env.messagecount)):"responses"==this.env.action&&this.enable_command("add",!0);this.gui_objects.identitieslist?(this.identity_list=new rcube_list_widget(this.gui_objects.identitieslist,
{multiselect:!1,draggable:!1,keyboard:!0}),this.identity_list.addEventListener("select",function(g){h.identity_select(g)}).addEventListener("keypress",function(g){h.list_keypress(g)}).init().focus()):this.gui_objects.sectionslist?(this.sections_list=new rcube_list_widget(this.gui_objects.sectionslist,{multiselect:!1,draggable:!1,keyboard:!0}),this.sections_list.addEventListener("select",function(g){h.section_select(g)}).init().focus()):this.gui_objects.subscriptionlist?this.init_subscription_list():
this.gui_objects.responseslist&&(this.responses_list=new rcube_list_widget(this.gui_objects.responseslist,{multiselect:!1,draggable:!1,keyboard:!0}),this.responses_list.addEventListener("select",function(g){h.response_select(g)}).addEventListener("keypress",function(g){h.list_keypress(g)}).init().focus());break;case "login":var e=$("#rcmloginuser"),f=$("#rcmlogintz");""==e.val()?e.focus():$("#rcmloginpwd").focus();window.jstz&&(b=jstz.determine())&&(d=b.name());f.val(d?d:(new Date).getStdTimezoneOffset()/
-60);$("form").submit(function(){$("[type=submit]",this).prop("disabled",!0);h.clear_messages();h.display_message("","loading")})}this.gui_objects.editform&&$("input,select,textarea",this.gui_objects.editform).not(":hidden").not(":disabled").first().select().focus();bw.ie&&$("input[type=file]").keydown(function(g){"13"==g.keyCode&&g.preventDefault()});this.loaded=!0;this.env.lastrefresh=new Date;this.pending_message&&this.display_message.apply(this,this.pending_message);this.gui_objects.folderlist&&
window.rcube_treelist_widget&&this.gui_objects.folderlist!=this.gui_objects.addressbookslist&&(this.treelist=new rcube_treelist_widget(this.gui_objects.folderlist,{selectable:!0,id_prefix:"rcmli",parent_focus:!0,id_encode:this.html_identifier_encode,id_decode:this.html_identifier_decode,check_droptarget:function(g){return!g.virtual&&h.check_droptarget(g.id)}}),this.treelist.addEventListener("collapse",function(g){h.folder_collapsed(g)}).addEventListener("expand",function(g){h.folder_collapsed(g)}).addEventListener("beforeselect",
function(g){return!h.busy}).addEventListener("select",function(g){h.triggerEvent("selectfolder",{folder:g.id,prefix:"rcmli"});h.mark_all_read_state()}));this.gui_objects.filedrop&&this.env.filedrop&&window.FormData&&($(document.body).on("dragover dragleave drop",function(g){return h.document_drag_hover(g,"dragover"==g.type)}),$(this.gui_objects.filedrop).addClass("droptarget").on("dragover dragleave",function(g){return h.file_drag_hover(g,"dragover"==g.type)}).get(0).addEventListener("drop",function(g){return h.file_dropped(g)},
!1));b=function(g){return h.doc_mouse_up(g)};$(document.body).mouseup(b).keydown(function(g){return h.doc_keypress(g)});rcube_webmail.set_iframe_events({mouseup:b});this.triggerEvent("init",{task:this.task,action:this.env.action});for(a in this.onloads)if("string"===typeof this.onloads[a])eval(this.onloads[a]);else if("function"===typeof this.onloads[a])this.onloads[a]();$("[data-popup]").each(function(){h.register_menu_button(this,$(this).data("popup"))});this.start_refresh();this.start_keepalive()}else this.goto_url("error",
"_code=0x199")};this.log=function(a){this.env.devel_mode&&window.console&&console.log&&console.log(a)};this.command=function(a,b,d,e,f){!d||!d.blur||e&&rcube_event.is_keyboard(e)||d.blur();if(this.busy&&("reset-search"!=a||"search"!=this.last_command)&&!a.match(/^menu-/))return!1;if(d&&d.href&&0>String(d.href).indexOf("#")&&rcube_event.get_modifier(e))return!0;if(!f&&!this.commands[a])return this.is_framed()&&parent.rcmail.command(a,b),!1;if("mail"==this.task&&"compose"==this.env.action&&!this.env.server_error&&
"save-pref"!=a&&0>$.inArray(a,this.env.compose_commands)&&!this.compose_skip_unsavedcheck&&!this.env.is_sent&&this.cmp_hash!=this.compose_field_hash())return this.confirm_dialog(this.get_label("notsentwarning"),"discard",function(){h.remove_compose_data(h.env.compose_id);h.compose_skip_unsavedcheck=!0;h.command(a,b,d,e)}),!1;this.last_command=a;this.command_aborted=!1;this.triggerEvent("actionbefore",{props:b,action:a,originalEvent:e});if(void 0!==(f=this.triggerEvent("before"+a,b||e))){if(!1===f)return!1;
b=f}f="function"===typeof this.command_handlers[a]?this.command_handlers[a](b,d,e):"string"===typeof this.command_handlers[a]?window[this.command_handlers[a]](b,d,e):this.command_handler(a,b,d,e);this.command_aborted||!1!==this.triggerEvent("after"+a,b)||(f=!1);this.triggerEvent("actionafter",{props:b,action:a,aborted:this.command_aborted,ret:f,originalEvent:e});return!1===f||d&&!0!==f||!0===this.command_aborted?!1:!0};this.command_handler=function(a,b,d,e){var f;switch(a){case "logout":case "mail":case "addressbook":case "settings":this.switch_task(a);
break;case "about":this.redirect("?_task=settings&_action=about",!1);break;case "permaurl":if(d&&d.href&&d.target)return!0;this.env.permaurl&&(parent.location.href=this.env.permaurl);break;case "extwin":if("compose"==this.env.action){if(a=this.gui_objects.messageform,b=this.open_window(""))this.save_compose_form_local(),this.compose_skip_unsavedcheck=!0,$("[name='_action']",a).val("compose"),a.action=this.url("mail/compose",{_id:this.env.compose_id,_extwin:1}),a.target=b.name,a.submit()}else this.open_window(this.env.permaurl,
!0);break;case "change-format":e=this.env.permaurl+"&_format="+b;"preview"==this.env.action&&(e=e.replace(/_action=show/,"_action=preview")+"&_framed=1");this.env.extwin&&(e+="&_extwin=1");location.href=e;break;case "menu-open":b&&"attachmentmenu"==b.menu&&((f=this.env.attachments[b.id])&&f.mimetype&&(f=f.mimetype),this.enable_command("open-attachment",f&&this.env.mimetypes&&0<=$.inArray(f,this.env.mimetypes)));this.show_menu(b,b.show||void 0,e);break;case "menu-close":this.hide_menu(b,e);break;case "menu-save":return this.triggerEvent(a,
{props:b,originalEvent:e}),!1;case "open":if(f=this.get_single_uid())return d.href=this.url("show",this.params_from_uid(f,{_extwin:1})),!0;break;case "close":this.env.extwin&&window.close();break;case "list":b&&""!=b&&this.reset_qsearch(!0);"compose"==this.env.action&&this.env.extwin?window.close():"mail"==this.task?(this.list_mailbox(b),this.set_button_titles()):"addressbook"==this.task&&this.list_contacts(b);break;case "set-listmode":this.set_list_options(null,void 0,void 0,"threads"==b?1:0);break;
case "sort":a=this.env.sort_order;b=this.env.disabled_sort_col?this.env.sort_col:b;this.env.disabled_sort_order||(a=this.env.sort_col==b&&"ASC"==a?"DESC":"ASC");this.set_list_sorting(b,a);this.list_mailbox("","",b+"_"+a);break;case "nextpage":this.list_page("next");break;case "lastpage":this.list_page("last");break;case "previouspage":this.list_page("prev");break;case "firstpage":this.list_page("first");break;case "expunge":this.env.exists&&this.expunge_mailbox(this.env.mailbox);break;case "purge":case "empty-mailbox":this.env.exists&&
this.purge_mailbox(this.env.mailbox);break;case "show":if("mail"==this.task)!(f=this.get_single_uid())||this.env.uid&&f==this.env.uid||(b=this.get_message_mailbox(f),b==this.env.drafts_mailbox?this.open_compose_step({_draft_uid:f,_mbox:b}):this.show_message(f));else if("addressbook"==this.task){var g=b?b:this.get_single_cid();!g||"show"==this.env.action&&g==this.env.cid||this.load_contact(g,"show")}else"settings"==this.task&&this.goto_url("settings/"+b,{_framed:0});break;case "add":"addressbook"==
this.task?this.load_contact(0,"add"):"settings"==this.task&&"responses"==this.env.action?this.load_response(0,"add-response"):"settings"==this.task&&this.load_identity(0,"add-identity");break;case "edit":"addressbook"==this.task&&(g=this.get_single_cid())?this.load_contact(g,"edit"):"mail"==this.task&&(f=this.get_single_uid())&&(e={_mbox:this.get_message_mailbox(f)},e[e._mbox==this.env.drafts_mailbox&&"new"!=b?"_draft_uid":"_uid"]=f,this.open_compose_step(e));break;case "save":var k;if(a=this.gui_objects.editform)if((k=
$("[name='_pagesize']",a))&&k.length&&isNaN(parseInt(k.val())))this.alert_dialog(this.get_label("nopagesizewarning"),function(){k.focus()});else{if("reload"==b)a.action+="&_reload=1";else if("settings"==this.task&&0==this.env.identities_level%2&&(k=$("[name='_email']",a))&&k.length&&!rcube_check_email(k.val())){this.alert_dialog(this.get_label("noemailwarning"),function(){k.focus()});break}parent.rcmail&&parent.rcmail.env.source&&(a.action=this.add_url(a.action,"_orig_source",parent.rcmail.env.source));
a.submit()}break;case "delete":"mail"==this.task?this.delete_messages(e):"addressbook"==this.task?this.delete_contacts():"settings"==this.task&&"responses"==this.env.action?this.delete_response():"settings"==this.task&&this.delete_identity();break;case "move":case "moveto":"mail"==this.task?this.move_messages(b,e):"addressbook"==this.task&&this.move_contacts(b,e);break;case "copy":"mail"==this.task?this.copy_messages(b,e):"addressbook"==this.task&&this.copy_contacts(b,e);break;case "mark":b&&this.mark_message(b);
break;case "toggle_status":case "toggle_flag":a="toggle_flag"==a?"flagged":"read";if(f=b)"flagged"==a?this.message_list.rows[f].flagged&&(a="unflagged"):this.message_list.rows[f].deleted?a="undelete":this.message_list.rows[f].unread||(a="unread"),this.mark_message(a,f);break;case "add-contact":this.add_contact(b);break;case "load-remote":this.env.uid&&(b&&this.env.sender?this.add_contact(this.env.sender,!0):this.show_message(this.env.uid,!0,"preview"==this.env.action));break;case "load-attachment":case "open-attachment":case "download-attachment":f=
this.env.attachments[b];"compose"==this.env.action?(b={_file:b,_id:this.env.compose_id},f=f?f.mimetype:""):b={_mbox:this.env.mailbox,_uid:this.env.uid,_part:b};if("download-attachment"!=a&&f&&this.env.mimetypes&&0<=$.inArray(f,this.env.mimetypes)&&this.open_window(this.url("get",$.extend({_frame:1,_framed:0},b))))break;this.compose_skip_unsavedcheck=b._download=1;this.goto_url("get",b,!1,!0);this.compose_skip_unsavedcheck=0;break;case "select-all":this.select_all_mode=b?!1:!0;this.dummy_select=!0;
a=this["addressbook"==this.task?"contact_list":"message_list"];"invert"==b?a.invert_selection():a.select_all("page"==b?"":b);this.dummy_select=null;break;case "select-none":this.select_all_mode=!1;this["addressbook"==this.task?"contact_list":"message_list"].clear_selection();break;case "expand-all":this.env.autoexpand_threads=1;this.message_list.expand_all();break;case "expand-unread":this.env.autoexpand_threads=2;this.message_list.collapse_all();this.expand_unread();break;case "collapse-all":this.env.autoexpand_threads=
0;this.message_list.collapse_all();break;case "nextmessage":this.env.next_uid&&this.show_message(this.env.next_uid,!1,"preview"==this.env.action);break;case "lastmessage":this.env.last_uid&&this.show_message(this.env.last_uid);break;case "previousmessage":this.env.prev_uid&&this.show_message(this.env.prev_uid,!1,"preview"==this.env.action);break;case "firstmessage":this.env.first_uid&&this.show_message(this.env.first_uid);break;case "compose":e={};if("mail"==this.task)e={_mbox:this.env.mailbox,_search:this.env.search_request},
b&&(e._to=b);else if("addressbook"==this.task)if(b&&0<b.indexOf("@"))e._to=b;else if(a=[],b?a.push(b):this.contact_list&&(a=this.contact_list.get_selection()),a.length){this.http_post("mailto",{_cid:a.join(","),_source:this.env.source},!0);break}else{if(this.env.group&&this.env.pagecount){this.http_post("mailto",{_gid:this.env.group,_source:this.env.source},!0);break}}else b&&"string"==typeof b?e._to=b:b&&"object"==typeof b&&$.extend(e,b);this.open_compose_step(e);break;case "spellcheck":this.spellcheck_state()?
this.editor.spellcheck_stop():this.editor.spellcheck_start();break;case "savedraft":clearTimeout(this.save_timer);if(this.env.draft_id&&this.cmp_hash==this.compose_field_hash()){this.auto_save_start();break}this.submit_messageform(!0);break;case "send":if(!b.nocheck&&!this.env.is_sent&&!this.check_compose_input(a))break;clearTimeout(this.save_timer);this.submit_messageform();break;case "send-attachment":clearTimeout(this.save_timer);(a=this.upload_file(b||this.gui_objects.uploadform,"upload"))||(!1!==
a&&this.alert_dialog(this.get_label("selectimportfile")),aborted=!0);break;case "insert-sig":this.change_identity($("[name='_from']")[0],!0);break;case "list-addresses":this.list_contacts(b);this.enable_command("add-recipient",!1);break;case "add-recipient":this.compose_add_recipient(b);break;case "reply-all":case "reply-list":case "reply":if(f=this.get_single_uid())e={_reply_uid:f,_mbox:this.get_message_mailbox(f),_search:this.env.search_request},"reply-all"==a?e._all=!b&&1==this.env.reply_all_mode&&
this.commands["reply-list"]?"list":"all":"reply-list"==a&&(e._all="list"),this.open_compose_step(e);break;case "forward-attachment":case "forward-inline":case "forward":f=this.env.uid?[this.env.uid]:this.message_list?this.message_list.get_selection():[];if(f.length){e={_forward_uid:this.uids_to_list(f),_mbox:this.env.mailbox,_search:this.env.search_request};if("forward-attachment"==a||!b&&this.env.forward_attachment||1<f.length)e._attachment=1;this.open_compose_step(e)}break;case "print":if("addressbook"==
this.task){if(f=this.get_single_cid())e="&_action=print&_cid="+f,this.env.source&&(e+="&_source="+urlencode(this.env.source)),this.open_window(this.env.comm_path+e,!0,!0)}else if("get"==this.env.action&&!this.env.is_message)this.gui_objects.messagepartframe.contentWindow.print();else if(f=this.get_single_uid())e=this.url("print",this.params_from_uid(f,{_safe:this.env.safemode?1:0})),this.open_window(e,!0,!0)&&"show"!=this.env.action&&"get"!=this.env.action&&this.mark_message("read",f);break;case "viewsource":(f=
this.get_single_uid())&&this.open_window(this.url("viewsource",this.params_from_uid(f)),!0,!0);break;case "download":"get"==this.env.action?location.href=this.secure_url(location.href.replace(/_frame=/,"_download=")):(f=this.get_single_uid())&&this.goto_url("viewsource",this.params_from_uid(f,{_save:1}),!1,!0);break;case "search":return this.qsearch(b);case "reset-search":var l;b=this.env.search_request||this.env.qsearch;this.reset_qsearch(!0);if(b&&"compose"==this.env.action)this.contact_list&&this.list_contacts_clear();
else if(b&&this.env.mailbox)this.list_mailbox(this.env.mailbox,1);else if(b&&"addressbook"==this.task){if(""==this.env.source){for(l in this.env.address_sources)break;this.env.source=l;this.env.group=""}this.list_contacts(this.env.source,this.env.group,1)}break;case "pushgroup":var m={id:b.id,search_request:this.env.search_request,page:this.env.current_page,search:this.env.search_request&&this.gui_objects.qsearchbox?this.gui_objects.qsearchbox.value:null};this.env.address_group_stack.push(m);d&&e&&
rcube_event.cancel(e);case "listgroup":this.reset_qsearch();this.list_contacts(b.source,b.id,1,m);break;case "popgroup":this.env.address_group_stack.length&&(a=this.env.address_group_stack.pop(),this.reset_qsearch(),a.search_request?(a.search&&this.gui_objects.qsearchbox&&$(this.gui_objects.qsearchbox).val(a.search),this.env.search_request=a.search_request,this.list_contacts_remote(null,null,this.env.current_page=a.page)):this.list_contacts(b.source,this.env.address_group_stack[this.env.address_group_stack.length-
1].id));break;case "import-messages":a=b||this.gui_objects.importform;b=this.set_busy(!0,"importwait");(a=this.upload_file(a,"import",b))||(this.set_busy(!1,null,b),!1!==a&&this.alert_dialog(this.get_label("selectimportfile")),this.command_aborted=!0);break;case "import":var q=$("<iframe>").attr("src",this.url("import",{_framed:1,_target:this.env.source}));this.import_state=null;this.import_dialog=this.simple_dialog(q,this.gettext("importcontacts"),function(p){var t=q[0].contentWindow,v=t.rcmail.gui_objects.importform;
if(v){var w;(w=t.$("#rcmimportfile")[0])&&!w.value?t.rcmail.alert_dialog(t.rcmail.get_label("selectimportfile")):(w=t.rcmail.set_busy(!0,"importwait"),$('[name="_unlock"]',v).val(w),v.submit(),t.rcmail.lock_form(v,!0),$(p.target).attr("disabled",!0).next().focus())}},{close:function(p,t){$(this).remove();"reload"==h.import_state&&h.command("list")},button:"import",width:500,height:300});break;case "export":0<this.contact_list.rowcount&&this.goto_url("export",{_source:this.env.source,_gid:this.env.group,
_search:this.env.search_request},!1,!0);break;case "export-selected":0<this.contact_list.rowcount&&this.goto_url("export",{_source:this.env.source,_gid:this.env.group,_cid:this.contact_list.get_selection().join(",")},!1,!0);break;case "upload-photo":this.upload_contact_photo(b||this.gui_objects.uploadform);break;case "delete-photo":this.replace_contact_photo("-del-");break;case "undo":this.http_request("undo","",this.display_message("","loading"));break;default:if(a=a.replace(/-/g,"_"),this[a]&&"function"===
typeof this[a])return this[a](b,d,e)}};this.enable_command=function(){var a,b,d=Array.prototype.slice.call(arguments),e=d.pop();for(b=0;b<d.length;b++){var f=d[b];if("string"===typeof f)this.commands[f]=e,this.set_button(f,e?"act":"pas"),this.triggerEvent("enable-command",{command:f,status:e});else for(a in f)d.push(f[a])}this.set_menu_buttons()};this.command_enabled=function(a){return this.commands[a]};this.set_busy=function(a,b,d){a&&b?(d=this.get_label(b),d==b&&(d="Loading..."),d=this.display_message(d,
"loading")):!a&&d&&this.hide_message(d);this.busy=a;this.gui_objects.editform&&this.lock_form(this.gui_objects.editform,a);return d};this.gettext=this.get_label=function(a,b){return b&&this.labels[b+"."+a]?this.labels[b+"."+a]:this.labels[a]?this.labels[a]:a};this.switch_task=function(a){var b;if(2==(b=a.split("/")).length){a=b[0];var d=b[1]}if(this.task!==a||"mail"==a)b=this.get_task_url(a),d&&(b+="&_action="+d),"mail"==a?b+="&_mbox=INBOX":"logout"==a&&(b=this.secure_url(b),this.clear_compose_data()),
this.redirect(b)};this.get_task_url=function(a,b){b||(b=this.env.comm_path);return b.match(/[?&]_task=[a-zA-Z0-9_-]+/)?b.replace(/_task=[a-zA-Z0-9_-]+/,"_task="+a):b.replace(/\?.*$/,"")+"?_task="+a};this.reload=function(a){this.is_framed()?parent.rcmail.reload(a):a?setTimeout(function(){h.reload()},a):window.location&&(location.href=this.url("",{_extwin:this.env.extwin}))};this.add_url=function(a,b,d){var e="";d=urlencode(d);/(#[a-z0-9_-]+)$/.test(a)&&(e=RegExp.$1,a=a.substr(0,a.length-e.length));
if(/(\?.*)$/.test(a)){var f=RegExp.$1;var g=RegExp("((\\?|&)"+RegExp.escape(b)+"=[^&]*)");f=g.test(f)?f.replace(g,RegExp.$2+b+"="+d):f+("&"+b+"="+d);return a.replace(/(\?.*)$/,f)+e}return a+"?"+b+"="+d+e};this.secure_url=function(a){return this.add_url(a,"_token",this.env.request_token)};this.is_framed=function(){return this.env.framed&&parent.rcmail&&parent.rcmail!=this&&"function"==typeof parent.rcmail.command};this.save_pref=function(a){var b={_name:a.name,_value:a.value};a.session&&(b._session=
a.session);a.env&&(this.env[a.env]=a.value);this.http_post("save-pref",b)};this.html_identifier=function(a,b){return b?this.html_identifier_encode(a):String(a).replace(this.identifier_expr,"_")};this.html_identifier_encode=function(a){return Base64.encode(String(a)).replace(/=+$/,"").replace(/\+/g,"-").replace(/\//g,"_")};this.html_identifier_decode=function(a){for(a=String(a).replace(/-/g,"+").replace(/_/g,"/");a.length%4;)a+="=";return Base64.decode(a)};this.drag_menu=function(a,b){var d=rcube_event.get_modifier(a),
e=this.gui_objects.dragmenu;return e&&d==SHIFT_KEY&&this.commands.copy?(d=rcube_event.get_mouse_pos(a),this.env.drag_target=b,this.show_menu(this.gui_objects.dragmenu.id,!0,a),$(e).css({top:d.y-10+"px",left:d.x-10+"px"}),!0):!1};this.drag_menu_action=function(a){var b=this.gui_objects.dragmenu;b&&$(b).hide();this.command(a,this.env.drag_target);this.env.drag_target=null};this.drag_start=function(a){this.drag_active=!0;this.preview_timer&&clearTimeout(this.preview_timer);this.treelist&&this.treelist.drag_start()};
this.drag_end=function(a){var b;this.treelist&&this.treelist.drag_end();if(b=this.message_list)var d=this.env.mailboxes;else if(b=this.contact_list)d=this.env.contactfolders;this.drag_active&&d&&this.env.last_folder_target&&!rcube_event.is_keyboard(a)&&(d=d[this.env.last_folder_target],b.draglayer.hide(),this.contact_list?this.contacts_drag_menu(a,d)||this.command("move",d):this.drag_menu(a,d)||this.command("move",d));this.drag_active=!1;this.env.last_folder_target=null};this.drag_move=function(a){if(this.gui_objects.folderlist){var b,
d,e="draglayernormal";a=rcube_event.get_mouse_pos(a);this.contact_list&&this.contact_list.draglayer&&(d=this.contact_list.draglayer.attr("class"));this.treelist&&(b=this.treelist.intersects(a,!0))?(this.env.last_folder_target=b,e="draglayer"+(1<this.check_droptarget(b)?"copy":"normal")):this.env.last_folder_target=null;e!=d&&this.contact_list&&this.contact_list.draglayer&&this.contact_list.draglayer.attr("class",e)}};this.collapse_folder=function(a){this.treelist&&this.treelist.toggle(a)};this.folder_collapsed=
function(a){this.folder_collapsed_timer&&clearTimeout(this.folder_collapsed_timer);var b="addressbook"==this.env.task?"collapsed_abooks":"collapsed_folders",d=this.env[b];if(a.collapsed)this.env[b]=this.env[b]+"&"+urlencode(a.id)+"&",!a.virtual&&this.env.mailbox&&this.env.mailbox.startsWith(a.id+this.env.delimiter)&&this.command("list",a.id);else{var e=new RegExp("&"+urlencode(a.id)+"&");this.env[b]=this.env[b].replace(e,"")}this.drag_active||(d!==this.env[b]&&(this.folder_collapsed_timer=setTimeout(function(){h.command("save-pref",
{name:b,value:h.env[b]})},10)),this.env.unread_counts&&this.set_unread_count_display(a.id,!1))};this.doc_mouse_up=function(a){var b,d=rcube_event.get_target(a);if(!$(d).closest(".ui-dialog, .ui-widget-overlay").length){window.rcube_list_widget&&rcube_list_widget._instances.length&&$.each(rcube_list_widget._instances,function(e,f){f&&!rcube_mouse_is_over(a,f.list.parentNode)&&f.blur()});if(this.buttons_sel){for(b in this.buttons_sel)"function"!==typeof b&&this.button_out(this.buttons_sel[b],b);this.buttons_sel=
{}}setTimeout(function(e){var f,g=$(d).parents();for(f=h.menu_stack.length-1;0<=f;f--){var k=h.menu_stack[f];var l=$("#"+k);!l.is(":visible")||d==l.data("opener")||d==l.get(0)||g.is(l.data("opener"))||k==m||"true"==l.attr("data-editable")&&$(d).parents("#"+k).length||"true"==l.attr("data-sticky")&&rcube_mouse_is_over(e,l.get(0))||h.hide_menu(k,e);var m=l.data("parent")}},10,a)}};this.doc_keypress=function(a){var b=function(f){var g,k=0>f?"prevAll":"nextAll",l=0>f?"last":"first";return h.focused_menu&&
(g=$("#"+h.focused_menu))?(f=g.find(":focus").closest("li")[k]().has(":not([aria-disabled=true])").find("a,input")[l](),f.length||(f=g.find(":focus").closest("ul")[k]().has(":not([aria-disabled=true])").find("a,input")[l]()),f.focus().length):0},d=a.target||{},e=rcube_event.get_keycode(a);if(27!=a.keyCode&&(!this.menu_keyboard_active||"TEXTAREA"==d.nodeName||"SELECT"==d.nodeName))return!0;switch(e){case 38:case 40:case 63232:case 63233:return b(38==e||63232==e?-1:1),rcube_event.cancel(a);case 9:return this.focused_menu&&
(d=rcube_event.get_modifier(a),b(d==SHIFT_KEY?-1:1)||this.hide_menu(this.focused_menu,a)),rcube_event.cancel(a);case 27:this.menu_stack.length&&this.hide_menu(this.menu_stack[this.menu_stack.length-1],a)}return!0};this.list_keypress=function(a,b){a.modkey!=CONTROL_KEY&&(a.key_pressed==a.DELETE_KEY||a.key_pressed==a.BACKSPACE_KEY?this.command(b&&b.del?b.del:"delete"):33==a.key_pressed?this.command(b&&b.prev?b.prev:"previouspage"):34==a.key_pressed&&this.command(b&&b.next?b.next:"nextpage"))};this.msglist_keypress=
function(a){a.key_pressed!=a.ENTER_KEY||this.env.contentframe?this.list_keypress(a):this.command("show")};this.msglist_select=function(a){this.preview_timer&&clearTimeout(this.preview_timer);var b=a.get_single_selection(),d=a.get_selection(!1).length;this.enable_command(this.env.message_commands,null!=b);b&&(this.get_message_mailbox(b)==this.env.drafts_mailbox?this.enable_command("reply","reply-all","reply-list","forward","forward-attachment","forward-inline",!1):this.env.messages[b].ml||this.enable_command("reply-list",
!1));this.enable_command("delete","move","copy","mark","forward","forward-attachment",0<d);if(b||d&&d!=a.rowcount)this.select_all_mode=!1;b&&this.env.contentframe&&!a.multi_selecting&&!this.dummy_select?(a=(new Date).getTime(),b=this.preview_delay_click,a-(this._last_msglist_select_time||0)<this.preview_delay_select&&(b=this.preview_delay_select,this.preview_timer&&clearTimeout(this.preview_timer),this.env.contentframe&&this.show_contentframe(!1)),this._last_msglist_select_time=a,this.preview_timer=
setTimeout(function(){h.msglist_get_preview()},b)):this.env.contentframe&&this.show_contentframe(!1)};this.msglist_dbl_click=function(a){this.preview_timer&&clearTimeout(this.preview_timer);var b=a.get_single_selection();b&&(a=this.get_message_mailbox(b),a==this.env.drafts_mailbox?this.open_compose_step({_draft_uid:b,_mbox:a}):this.show_message(b))};this.msglist_get_preview=function(){var a=this.get_single_uid();a&&this.env.contentframe&&!this.drag_active?this.show_message(a,!1,!0):this.env.contentframe&&
this.show_contentframe(!1)};this.msglist_expand=function(a){this.env.messages[a.uid]&&(this.env.messages[a.uid].expanded=a.expanded);$(a.obj)[a.expanded?"addClass":"removeClass"]("expanded")};this.msglist_set_coltypes=function(a){var b=a.thead.rows[0].cells;this.env.listcols=[];for(a=0;a<b.length;a++)if(b[a].id&&b[a].id.startsWith("rcm")){var d=b[a].id.slice(3);this.env.listcols.push(d)}0<=(a=$.inArray("flag",this.env.listcols))&&(this.env.flagged_col=a);0<=(a=$.inArray("subject",this.env.listcols))&&
(this.env.subject_col=a);this.command("save-pref",{name:"list_cols",value:this.env.listcols,session:"list_attrib/columns"})};this.check_droptarget=function(a){switch(this.task){case "mail":return!this.env.mailboxes[a]||this.env.mailboxes[a].virtual||this.env.mailboxes[a].id==this.env.mailbox&&!this.is_multifolder_listing()?0:1;case "addressbook":var b;if(a!=this.env.source&&(b=this.env.contactfolders[a]))if("group"==b.type){if(b.id!=this.env.group&&!this.env.contactfolders[b.source].readonly)return!(1<
this.env.selection_sources.length||-1==$.inArray(b.source,this.env.selection_sources))||this.commands.move?1:2}else if(!b.readonly&&(1<this.env.selection_sources.length||-1==$.inArray(a,this.env.selection_sources)))return this.commands.move?1:2}return 0};this.open_window=function(a,b,d){var e="rcmextwin"+(new Date).getTime();a+=(a.match(/\?/)?"&":"?")+"_extwin=1";if(this.env.standard_windows)var f=window.open(a,e);else{var g=this.is_framed()?parent.window:window,k=$(g),l=k.width();k=bw.mz?$("body",
g).height():k.height();f=window.open(a,e,"width="+Math.min(b?this.env.popup_width_small:this.env.popup_width,l)+",height="+k+",top="+((g.screenTop||g.screenY)+20)+",left="+((g.screenLeft||g.screenX)+20)+",resizable=yes,location=no,scrollbars=yes"+(d?",toolbar=yes,menubar=yes,status=yes":",toolbar=no,menubar=no,status=no"))}if(!f||f.closed)this.display_message("windowopenerror","warning");else return!a&&f.document&&f.document.write("<html><body>"+this.get_label("loading")+"</body></html>"),this.triggerEvent("openwindow",
{url:a,handle:f}),setTimeout(function(){f&&f.focus()},10),f};this.init_message_row=function(a){var b={},d=a.uid,e=(null!=this.env.status_col?"status":"msg")+"icn"+a.id;d&&this.env.messages[d]&&$.extend(a,this.env.messages[d]);if(a.icon=document.getElementById(e))b.icon=function(f){h.command("toggle_status",d)};a.msgicon=null!=this.env.status_col?document.getElementById("msgicn"+a.id):a.icon;null!=this.env.flagged_col&&(a.flagicon=document.getElementById("flagicn"+a.id))&&(b.flagicon=function(f){h.command("toggle_flag",
d)});!a.depth&&a.has_children&&(a.expando=document.getElementById("rcmexpando"+a.id))&&(b.expando=function(f){h.expand_message_row(f,d)});$.each(b,function(f,g){a[f].onclick=function(k){g(k);return rcube_event.cancel(k)};bw.touch&&a[f].addEventListener&&a[f].addEventListener("touchend",function(k){if(1==k.changedTouches.length)return g(k),rcube_event.cancel(k)},!1)});this.triggerEvent("insertrow",{uid:d,row:a})};this.add_message_row=function(a,b,d,e){if(!this.gui_objects.messagelist||!this.message_list||
d.mbox!=this.env.mailbox&&!d.skip_mbox_check||this.message_list.rows[a])return!1;this.env.messages[a]||(this.env.messages[a]={});$.extend(this.env.messages[a],{deleted:d.deleted?1:0,replied:d.answered?1:0,unread:d.seen?0:1,forwarded:d.forwarded?1:0,flagged:d.flagged?1:0,has_children:d.has_children?1:0,depth:d.depth?d.depth:0,unread_children:d.unread_children||0,flagged_children:d.flagged_children||0,parent_uid:d.parent_uid||0,selected:this.select_all_mode||this.message_list.in_selection(a),ml:d.ml?
1:0,ctype:d.ctype,mbox:d.mbox,flags:d.extra_flags});var f,g,k="",l=g="",m="",q=this.message_list;var p=q.rows;var t=this.env.messages[a],v=this.html_identifier(a,!0),w="message"+(d.seen?"":" unread")+(d.deleted?" deleted":"")+(d.flagged?" flagged":"")+(t.selected?" selected":""),x={cols:[],style:{},id:"rcmrow"+v,uid:a};var u="msgicon";null===this.env.status_col&&(u+=" status",d.deleted?(k+=" deleted",g+=this.get_label("deleted")+" "):d.seen?0<d.unread_children&&(k+=" unreadchildren"):(k+=" unread",
g+=this.get_label("unread")+" "));d.answered&&(k+=" replied",g+=this.get_label("replied")+" ");d.forwarded&&(k+=" forwarded",g+=this.get_label("forwarded")+" ");t.selected&&!q.in_selection(a)&&q.selection.push(a);this.env.threading&&(t.depth?(l+='<span id="rcmtab'+v+'" class="branch" style="width:'+15*t.depth+'px;"> </span>',p[t.parent_uid]&&!1===p[t.parent_uid].expanded||!(0!=this.env.autoexpand_threads&&2!=this.env.autoexpand_threads||p[t.parent_uid]&&p[t.parent_uid].expanded)?(x.style.display=
"none",t.expanded=!1):t.expanded=!0,w+=" thread expanded"):t.has_children&&(void 0===t.expanded&&(1==this.env.autoexpand_threads||2==this.env.autoexpand_threads&&t.unread_children)&&(t.expanded=!0),m='<div id="rcmexpando'+x.id+'" class="'+(t.expanded?"expanded":"collapsed")+'"> </div>',w+=" thread"+(t.expanded?" expanded":"")),d.unread_children&&d.seen&&!t.expanded&&(w+=" unroot"),d.flagged_children&&!t.expanded&&(w+=" flaggedroot"));l+='<span id="msgicn'+x.id+'" class="'+u+k+'" title="'+
g+'"></span>';x.className=w;b.subject&&(u=d.mbox==this.env.drafts_mailbox?"compose":"show",g={_mbox:d.mbox},g[d.mbox==this.env.drafts_mailbox?"_draft_uid":"_uid"]=a,b.subject='<a href="'+this.url(u,g)+'" onclick="return rcube_event.keyboard_only(event)" onmouseover="rcube_webmail.long_subject_title(this,'+(t.depth+1)+')" tabindex="-1"><span>'+b.subject+"</span></a>");for(f in this.env.listcols)u=this.env.listcols[f],g={className:String(u).toLowerCase(),events:{}},this.env.coltypes[u]&&this.env.coltypes[u].hidden&&
(g.className+=" hidden"),"flag"==u?(u=d.flagged?"flagged":"unflagged",p=this.get_label(u),u='<span id="flagicn'+x.id+'" class="'+u+'" title="'+p+'"></span>'):"attachment"==u?(p=this.get_label("withattachment"),u=d.attachmentClass?'<span class="'+d.attachmentClass+'" title="'+p+'"></span>':"multipart/report"==d.ctype?'<span class="report"></span>':"multipart/encrypted"==d.ctype||"application/pkcs7-mime"==d.ctype?'<span class="encrypted"></span>':d.hasattachment||!d.hasnoattachment&&/application\/|multipart\/(m|signed)/.test(d.ctype)?
'<span class="attachment" title="'+p+'"></span>':" "):"status"==u?(p="",d.deleted?(u="deleted",p=this.get_label("deleted")):d.seen?u=0<d.unread_children?"unreadchildren":"msgicon":(u="unread",p=this.get_label("unread")),u='<span id="statusicn'+x.id+'" class="'+u+k+'" title="'+p+'"></span>'):"threads"==u?u=m:"subject"==u?u=l+b[u]:"priority"==u?0<d.prio&&6>d.prio?(p=this.get_label("priority")+" "+d.prio,u='<span class="prio'+d.prio+'" title="'+p+'"></span>'):u=" ":u="folder"==u?'<span onmouseover="rcube_webmail.long_subject_title(this)">'+
b[u]+"<span>":b[u],g.innerHTML=u,x.cols.push(g);"widescreen"==this.env.layout&&(x=this.widescreen_message_row(x,a,t));q.insert_row(x,e);e&&this.env.pagesize&&q.rowcount>this.env.pagesize&&(a=q.get_last_row(),q.remove_row(a),q.clear_selection(a))};this.widescreen_message_row=function(a,b,d){var e=document.createElement("tr");e.id=a.id;e.uid=a.uid;e.className=a.className;a.style&&$.extend(e.style,a.style);$.each(this.env.widescreen_list_template,function(){if(h.env.threading||"threads"!=this.className){var f,
g,k=document.createElement("td");this.className&&(k.className=this.className);for(f=0;this.cells&&f<this.cells.length;f++)for(g=0;a.cols&&g<a.cols.length;g++)if(this.cells[f]==a.cols[g].className){g=a.cols[g];var l=document.createElement("span");l.className=this.cells[f];"subject"==this.className&&"subject"!=l.className&&(l.className+=" skip-on-drag");g.innerHTML&&(l.innerHTML=g.innerHTML);k.appendChild(l);break}e.appendChild(k)}});this.env.threading&&d.depth&&(n=this.calculate_thread_padding(d.depth),
$("td.subject",e).attr("style","padding-left:"+n+" !important"),$("span.branch",e).remove());return e};this.calculate_thread_padding=function(a){h.env.thread_padding.match(/^([0-9.]+)(.+)/);return Math.min(6,a)*parseFloat(RegExp.$1)+RegExp.$2};this.set_list_sorting=function(a,b){var d="arrival"==a?"date":a;$("#rcm"+("arrival"==this.env.sort_col?"date":this.env.sort_col)).removeClass("sorted"+this.env.sort_order.toUpperCase());d&&$("#rcm"+d).addClass("sorted"+b);$("#rcmdate > a").prop("rel","arrival"==
a?"arrival":"date");this.env.sort_col=a;this.env.sort_order=b};this.set_list_options=function(a,b,d,e,f){var g={};void 0===b&&(b=this.env.sort_col);d||(d=this.env.sort_order);if(this.env.sort_col!=b||this.env.sort_order!=d){var k=1;this.set_list_sorting(b,d)}this.env.threading!=e&&(k=1,g._threads=e);f&&this.env.layout!=f&&(this.triggerEvent("layout-change",{old_layout:this.env.layout,new_layout:f}),k=1,this.env.layout=g._layout=f);if(a&&a.length){var l=[],m=this.env.listcols;for(e=0;e<m.length;e++){var q=
m[e];f=$.inArray(q,a);-1!=f&&(l.push(q),delete a[f])}for(e=0;e<a.length;e++)a[e]&&l.push(a[e]);l.join()!=m.join()&&(k=1,g._cols=l.join(","))}k&&this.list_mailbox("","",b+"_"+d,g)};this.show_message=function(a,b,d){if(a){var e,f=window,g=this.params_from_uid(a,{_caps:this.browser_capabilities()});d&&(e=this.get_frame_window(this.env.contentframe))&&(f=e,g._framed=1);b&&(g._safe=1);this.env.search_request&&(g._search=this.env.search_request);this.env.extwin&&(g._extwin=1);g=this.url(d?"preview":"show",
g);d&&(this.preview_id=a);d&&0<=String(f.location.href).indexOf(g)?this.show_contentframe(!0):d||!this.env.message_extwin||this.env.extwin?this.location_href(g,f,!0):this.open_window(g,!0)}};this.set_unread_message=function(a,b){var d=this;d.message_list||(d=d.opener());!d&&window.parent&&(d=parent.rcmail);d&&d.message_list&&(!1===d.set_message(a,"unread",!1)&&d.set_message(a+"-"+b,"unread",!1),0<d.env.unread_counts[b]&&(--d.env.unread_counts[b],d.set_unread_count(b,d.env.unread_counts[b],"INBOX"==
b&&!d.is_multifolder_listing())))};this.show_contentframe=function(a){var b,d,e=this.env.contentframe;if(b=this.get_frame_element(e))if(!a&&(d=this.get_frame_window(e)))0>d.location.href.indexOf(this.env.blankpage)&&(d.stop?d.stop():d.document.execCommand("Stop"),d.location.href=this.env.blankpage);else if(!bw.safari&&!bw.konq)$(b)[a?"show":"hide"]();a||(this.unlock_frame(),delete this.preview_id)};this.get_frame_element=function(a){var b;if(a&&(b=document.getElementById(a)))return b};this.get_frame_window=
function(a){if((a=this.get_frame_element(a))&&a.name&&window.frames)return window.frames[a.name]};this.lock_frame=function(a){var b=this.is_framed()?parent.rcmail:this;b.env.frame_lock||(b.env.frame_lock=b.set_busy(!0,"loading"));if(a.frameElement)$(a.frameElement).on("load.lock",function(d){b.unlock_frame();$(this).off("load.lock")})};this.unlock_frame=function(){this.env.frame_lock&&(this.set_busy(!1,null,this.env.frame_lock),this.env.frame_lock=null)};this.list_page=function(a){"next"==a?a=this.env.current_page+
1:"last"==a?a=this.env.pagecount:"prev"==a&&1<this.env.current_page?a=this.env.current_page-1:"first"==a&&1<this.env.current_page&&(a=1);0<a&&a<=this.env.pagecount&&(this.env.current_page=a,"addressbook"==this.task||this.contact_list?this.list_contacts(this.env.source,this.env.group,a):"mail"==this.task&&this.list_mailbox(this.env.mailbox,a))};this.checkmail=function(){var a=this.set_busy(!0,"checkingmail"),b=this.check_recent_params();this.http_post("check-recent",b,a)};this.filter_mailbox=function(a){if(!this.filter_disabled){var b=
this.search_params(!1,a),d=this.set_busy(!0,"searching");this.clear_message_list();this.env.current_page=1;this.env.search_filter=a;this.http_request("search",b,d);this.update_state({_mbox:b._mbox,_filter:a,_scope:b._scope})}};this.refresh_list=function(){this.list_mailbox(this.env.mailbox,this.env.current_page||1,null,{_clear:1},!0);this.message_list&&this.message_list.clear_selection()};this.list_mailbox=function(a,b,d,e,f){var g=window;"object"!=typeof e&&(e={});a||(a=this.env.mailbox?this.env.mailbox:
"INBOX");d&&(e._sort=d);this.env.mailbox!=a?(b=1,this.env.current_page=b,this.env.search_scope="base",this.select_all_mode=!1,this.reset_search_filter()):this.env.search_request&&(e._search=this.env.search_request);if(!f){this.clear_message_list();if(a!=this.env.mailbox||a==this.env.mailbox&&!b&&!d)e._refresh=1;this.select_folder(a,"",!0);this.unmark_folder(a,"recent","",!0);this.env.mailbox=a}if(this.gui_objects.messagelist)this.list_mailbox_remote(a,b,e);else{if(d=this.get_frame_window(this.env.contentframe))g=
d,e._framed=1;this.env.uid&&(e._uid=this.env.uid);a&&(e._mbox=a,e._page=b,this.set_busy(!0,"loading"),this.location_href(e,g))}};this.clear_message_list=function(){this.env.messages={};this.show_contentframe(!1);this.message_list&&this.message_list.clear(!0)};this.list_mailbox_remote=function(a,b,d){var e=this.set_busy(!0,"loading");"object"!=typeof d&&(d={});d._layout=this.env.layout;d._mbox=a;d._page=b;this.http_request("list",d,e);this.update_state({_mbox:a,_page:b&&1<b?b:null})};this.update_selection=
function(){var a=this.message_list,b=a.selection,d=a.rows,e,f=[];for(e in b)d[b[e]]&&f.push(b[e]);a.selection=f;try{var g=this.get_frame_window(this.env.contentframe).rcmail.env.uid;g&&!a.in_selection(g)&&this.show_contentframe(!1)}catch(k){}};this.expand_unread=function(){for(var a,b=this.message_list.tbody.firstChild;b;)1==b.nodeType&&(a=this.message_list.rows[b.uid])&&a.unread_children&&(this.message_list.expand_all(a),this.set_unread_children(a.uid)),b=b.nextSibling;return!1};this.expand_message_row=
function(a,b){var d=this.message_list.rows[b];d.expanded=!d.expanded;this.set_unread_children(b);this.set_flagged_children(b);d.expanded=!d.expanded;this.message_list.expand_row(a,b)};this.expand_threads=function(){if(this.env.threading&&this.env.autoexpand_threads&&this.message_list)switch(this.env.autoexpand_threads){case 2:this.expand_unread();break;case 1:this.message_list.expand_all()}};this.init_threads=function(a,b){if(b&&b!=this.env.mailbox)return!1;b=0;for(var d=a.length;b<d;b++)this.add_tree_icons(a[b]);
this.expand_threads()};this.add_tree_icons=function(a){var b,d,e=[],f=[],g,k=this.message_list.rows;for(g=a?k[a]?k[a].obj:null:this.message_list.tbody.firstChild;g;){if(1==g.nodeType&&(d=k[g.uid]))if(d.depth){for(b=e.length-1;0<=b;b--){var l=e[b].length;if(l>d.depth){var m=l-d.depth;e[b][m]&2||(e[b][m]=e[b][m]?e[b][m]+2:2)}else l==d.depth&&(e[b][0]&2||(e[b][0]+=2));if(d.depth>l)break}e.push(Array(d.depth));e[e.length-1][0]=1;f.push(d.uid)}else{if(e.length){for(b in e)this.set_tree_icons(f[b],e[b]);
e=[];f=[]}if(a&&g!=k[a].obj)break}g=g.nextSibling}if(e.length)for(b in e)this.set_tree_icons(f[b],e[b])};this.set_tree_icons=function(a,b){var d,e=[],f="",g=b.length;for(d=0;d<g;d++)2<b[d]?e.push({"class":"l3",width:15}):1<b[d]?e.push({"class":"l2",width:15}):0<b[d]?e.push({"class":"l1",width:15}):e.length&&!e[e.length-1]["class"]?e[e.length-1].width+=15:e.push({"class":null,width:15});for(d=e.length-1;0<=d;d--)f=e[d]["class"]?f+('<div class="tree '+e[d]["class"]+'" />'):f+('<div style="width:'+e[d].width+
'px" />');f&&$("#rcmtab"+this.html_identifier(a,!0)).html(f)};this.update_thread_root=function(a,b){if(this.env.threading){var d=this.message_list.find_root(a);if(a!=d){a=this.message_list.rows[d];if("read"==b&&a.unread_children)a.unread_children--;else if("unread"==b&&a.has_children)a.unread_children=(a.unread_children||0)+1;else if("unflagged"==b&&a.flagged_children)a.flagged_children--;else if("flagged"==b&&a.has_children)a.flagged_children=(a.flagged_children||0)+1;else return;this.set_message_icon(d);
this.set_unread_children(d);this.set_flagged_children(d)}}};this.update_thread=function(a){if(!this.env.threading||!this.message_list.rows[a])return 0;var b,d=0,e=this.message_list,f=e.rows,g=f[a],k=f[a].depth,l=[];g.depth||d--;if(g.depth&&g.unread){var m=e.find_root(a);f[m].unread_children--;this.set_unread_children(m)}g.depth&&g.flagged&&(m=e.find_root(a),f[m].flagged_children--,this.set_flagged_children(m));m=g.parent_uid;for(g=g.obj.nextSibling;g;){if(1==g.nodeType&&(b=f[g.uid])){if(!b.depth||
b.depth<=k)break;b.depth--;$("#rcmtab"+b.id).width(15*b.depth).html("");b.depth?(b.depth==k&&(b.parent_uid=m),b.unread&&l.length&&l[l.length-1].unread_children++):(d++,b.parent_uid=0,b.has_children&&($("#"+b.id+" .leaf").first().attr("id","rcmexpando"+b.id).attr("class","none"!=b.obj.style.display?"expanded":"collapsed").mousedown({uid:b.uid},function(q){return h.expand_message_row(q,q.data.uid)}),b.unread_children=0,l.push(b)),"none"==b.obj.style.display&&$(b.obj).show())}g=g.nextSibling}for(b=0;b<
l.length;b++)this.set_unread_children(l[b].uid),this.set_flagged_children(l[b].uid);return d};this.delete_excessive_thread_rows=function(){for(var a=this.message_list.rows,b=this.message_list.tbody.firstChild,d=this.env.pagesize+1;b;)1==b.nodeType&&(r=a[b.uid])&&(!r.depth&&d&&d--,d||this.message_list.remove_row(b.uid)),b=b.nextSibling};this.set_message_icon=function(a){var b="",d=this.message_list.rows[a];if(!d)return!1;d.icon&&(a="msgicon",d.deleted?(a+=" deleted",b+=this.get_label("deleted")+" "):
d.unread?(a+=" unread",b+=this.get_label("unread")+" "):d.unread_children&&(a+=" unreadchildren"),d.msgicon==d.icon&&(d.replied&&(a+=" replied",b+=this.get_label("replied")+" "),d.forwarded&&(a+=" forwarded",b+=this.get_label("forwarded")+" "),a+=" status"),$(d.icon).attr({"class":a,title:b}));d.msgicon&&d.msgicon!=d.icon&&(b="",a="msgicon",!d.unread&&d.unread_children&&(a+=" unreadchildren"),d.replied&&(a+=" replied",b+=this.get_label("replied")+" "),d.forwarded&&(a+=" forwarded",b+=this.get_label("forwarded")+
" "),$(d.msgicon).attr({"class":a,title:b}));d.flagicon&&(a=d.flagged?"flagged":"unflagged",b=this.get_label(a),$(d.flagicon).attr("class",a).attr({"aria-label":b,title:b}))};this.set_message_status=function(a,b,d){var e=this.message_list.rows[a];if(!e)return!1;"unread"==b?e.unread!=d&&this.update_thread_root(a,d?"unread":"read"):"flagged"==b&&this.update_thread_root(a,d?"flagged":"unflagged");-1<$.inArray(b,["unread","deleted","replied","forwarded","flagged"])&&(e[b]=d)};this.set_message=function(a,
b,d){var e=this.message_list&&this.message_list.rows[a];if(!e)return!1;b&&this.set_message_status(a,b,d);if(-1<$.inArray(b,["unread","deleted","flagged"]))$(e.obj)[e[b]?"addClass":"removeClass"](b);this.set_unread_children(a);this.set_message_icon(a)};this.set_unread_children=function(a){a=this.message_list.rows[a];if(!a.parent_uid){var b=!a.unread&&a.unread_children&&!a.expanded;$(a.obj)[b?"addClass":"removeClass"]("unroot")}};this.set_flagged_children=function(a){a=this.message_list.rows[a];if(!a.parent_uid){var b=
a.flagged_children&&!a.expanded;$(a.obj)[b?"addClass":"removeClass"]("flaggedroot")}};this.copy_messages=function(a,b,d){if(a&&"object"===typeof a)a.uids&&(d=a.uids),a=a.id;else if(!a)return d=this.env.uid?[this.env.uid]:this.message_list.get_selection(),this.folder_selector(b,function(e,f){h.command("copy",{id:e,uids:d},f,b,!0)});a&&a!=this.env.mailbox&&(a=this.selection_post_data({_target_mbox:a,_uid:d}),a._uid&&this.http_post("copy",a,this.display_message("copyingmessage","loading")))};this.move_messages=
function(a,b,d){if(a&&"object"===typeof a)a.uids&&(d=a.uids),a=a.id;else if(!a)return d=this.env.uid?[this.env.uid]:this.message_list.get_selection(),this.folder_selector(b,function(f,g){h.command("move",{id:f,uids:d},g,b,!0)});if(a&&(a!=this.env.mailbox||this.is_multifolder_listing())){var e=!1;a=this.selection_post_data({_target_mbox:a,_uid:d});a._uid&&("show"==this.env.action&&(e=this.set_busy(!0,"movingmessage")),this.enable_command(this.env.message_commands,!1),this.with_selected_messages("move",
a,e),"show"!=this.env.action&&this.show_contentframe(!1))}};this.delete_messages=function(a){var b=this.message_list,d=this.env.trash_mailbox;if(this.env.flag_for_deletion)return this.mark_message("delete"),!1;d&&this.env.mailbox!=d?this.env.delete_junk&&this.env.junk_mailbox&&this.env.mailbox==this.env.junk_mailbox?this.permanently_remove_messages():b&&b.modkey==SHIFT_KEY||a&&rcube_event.get_modifier(a)==SHIFT_KEY?this.confirm_dialog(this.get_label("deletemessagesconfirm"),"delete",function(){h.permanently_remove_messages()}):
this.move_messages(d):this.permanently_remove_messages();return!0};this.permanently_remove_messages=function(){var a=this.selection_post_data();a._uid&&(this.with_selected_messages("delete",a),this.show_contentframe(!1))};this.with_selected_messages=function(a,b,d,e){var f=0,g="delete"==a||!this.is_multifolder_listing();if(this.message_list){var k,l=[],m=b._uid,q=this.check_display_next();"*"===m?m=this.message_list.get_selection():"string"==typeof m&&(m=m.split(","));var p=0;for(k=m.length;p<k;p++){var t=
m[p];if(this.env.threading){f+=this.update_thread(t);var v=this.message_list.find_root(t);v!=t&&0>$.inArray(v,l)&&l.push(v)}g&&this.message_list.remove_row(t,q&&p==m.length-1)}!q&&g&&this.message_list.clear_selection();p=0;for(k=l.length;p<k;p++)this.add_tree_icons(l[p])}0>f?b._count=-1*f:0<f&&g&&this.delete_excessive_thread_rows();g||(b._refresh=1);d||(d=this.display_message("move"==a?"movingmessage":"deletingmessage","loading"));this.http_post(e||a,b,d)};this.selection_post_data=function(a){"object"!=
typeof a&&(a={});a._uid||(a._uid=this.env.uid?[this.env.uid]:this.message_list.get_selection());a._mbox=this.env.mailbox;a._uid=this.uids_to_list(a._uid);this.env.action&&(a._from=this.env.action);this.env.search_request&&(a._search=this.env.search_request);this.env.display_next&&this.env.next_uid&&(a._next_uid=this.env.next_uid);return a};this.check_display_next=function(){return this.env.display_next&&(this.preview_id||!this.env.contentframe)};this.mark_message=function(a,b){var d=[],e=[],f=this.message_list;
b?d[0]=b:this.env.uid?d[0]=this.env.uid:f&&(d=f.get_selection());if(f){f.focus();var g=0;for(b=d.length;g<b;g++){var k=d[g];("read"==a&&f.rows[k].unread||"unread"==a&&!f.rows[k].unread||"delete"==a&&!f.rows[k].deleted||"undelete"==a&&f.rows[k].deleted||"flagged"==a&&!f.rows[k].flagged||"unflagged"==a&&f.rows[k].flagged)&&e.push(k)}}else e=d;if(e.length||this.select_all_mode)switch(a){case "read":case "unread":this.toggle_read_status(a,e);break;case "delete":case "undelete":this.toggle_delete_status(e);
break;case "flagged":case "unflagged":this.toggle_flagged_status(a,d)}};this.toggle_read_status=function(a,b){var d,e=b.length,f=this.selection_post_data({_uid:b,_flag:a}),g=this.display_message("markingmessage","loading");for(d=0;d<e;d++)this.set_message(b[d],"unread","unread"==a?!0:!1);this.http_post("mark",f,g)};this.toggle_flagged_status=function(a,b){var d,e=b.length,f=this.env.contentframe?this.get_frame_window(this.env.contentframe):window,g=this.selection_post_data({_uid:b,_flag:a}),k=this.display_message("markingmessage",
"loading");for(d=0;d<e;d++)this.set_message(b[d],"flagged","flagged"==a?!0:!1);if("show"==this.env.action||0<=$.inArray(this.preview_id,b))$(f.document.body)["flagged"==a?"addClass":"removeClass"]("status-flagged");this.http_post("mark",g,k)};this.toggle_delete_status=function(a){var b,d=!0,e=a.length,f=this.message_list?this.message_list.rows:{};if(1==e)return!this.message_list||f[a[0]]&&!f[a[0]].deleted?this.flag_as_deleted(a):this.flag_as_undeleted(a),!0;for(b=0;b<e;b++){var g=a[b];if(f[g]&&!f[g].deleted){d=
!1;break}}d?this.flag_as_undeleted(a):this.flag_as_deleted(a);return!0};this.flag_as_undeleted=function(a){var b,d=a.length,e=this.selection_post_data({_uid:a,_flag:"undelete"}),f=this.display_message("markingmessage","loading");for(b=0;b<d;b++)this.set_message(a[b],"deleted",!1);this.http_post("mark",e,f)};this.flag_as_deleted=function(a){for(var b=[],d=this.selection_post_data({_uid:a,_flag:"delete"}),e=this.display_message("markingmessage","loading"),f=this.message_list,g=f?f.rows:{},k=0,l=this.check_display_next(),
m=0,q=a.length;m<q;m++)uid=a[m],g[uid]&&(g[uid].unread&&(b[b.length]=uid),this.env.skip_deleted?(k+=this.update_thread(uid),f.remove_row(uid,l&&m==f.get_selection(!1).length-1)):this.set_message(uid,"deleted",!0));this.env.skip_deleted&&f&&(l&&f.rowcount||f.clear_selection(),0>k?d._count=-1*k:0<k&&this.delete_excessive_thread_rows());b.length&&(d._ruid=this.uids_to_list(b));this.env.skip_deleted&&this.env.display_next&&this.env.next_uid&&(d._next_uid=this.env.next_uid);this.http_post("mark",d,e)};
this.flag_deleted_as_read=function(a){var b,d=this.message_list?this.message_list.rows:{};"string"==typeof a&&(a=a.split(","));var e=0;for(b=a.length;e<b;e++){var f=a[e];d[f]&&this.set_message(f,"unread",!1)}};this.uids_to_list=function(a){if(this.select_all_mode)return"*";!$.isArray(a)||1!=a.length&&-1!=String(a[0]).indexOf("-")||(a=a.join(","));return a};this.set_button_titles=function(){var a="deletemessage";this.env.flag_for_deletion||!this.env.trash_mailbox||this.env.mailbox==this.env.trash_mailbox||
this.env.delete_junk&&this.env.junk_mailbox&&this.env.mailbox==this.env.junk_mailbox||(a="movemessagetotrash");this.set_alttext("delete",a)};this.init_pagejumper=function(a){$(a).addClass("rcpagejumper").on("focus",function(b){var d,e="";for(d=1;d<=h.env.pagecount;d++)e+="<li>"+d+"</li>";e='<ul class="toolbarmenu menu">'+e+"</ul>";h.pagejump||(h.pagejump=$('<div id="pagejump-selector" class="popupmenu"></div>').appendTo(document.body).on("click","li",function(){h.busy||$(a).val($(this).text()).change()}));
h.pagejump.data("count")!=d&&h.pagejump.html(e);h.pagejump.attr("rel","#"+this.id).data("count",d);h.show_menu("pagejump-selector",!0,b);$(this).keydown()}).on("keydown keyup click",function(b){var d=$("#pagejump-selector"),e=$("ul",d),f=$("li",e);e.height();var g=parseInt(this.value);if(27!=b.which&&9!=b.which&&13!=b.which&&!d.is(":visible"))return h.show_menu("pagejump-selector",!0,b);if("keydown"==b.type)if(40==b.which)f.length>g&&(this.value=g+=1);else if(38==b.which)1<g&&f.length>g-1&&(this.value=
--g);else{if(13==b.which)return $(this).change();if(27==b.which||9==b.which)return h.hide_menu("pagejump-selector",b),$(a).val(h.env.current_page)}$("li.selected",e).removeClass("selected");(b=$(f[g-1])).length&&(b.addClass("selected"),$("#pagejump-selector").scrollTop(e.height()/f.length*(g-1)-d.height()/2))}).on("change",function(b){var d=parseInt(this.value);d&&d!=h.env.current_page&&!h.busy&&(h.hide_menu("pagejump-selector",b),h.list_page(d))})};this.update_pagejumper=function(){$("input.rcpagejumper").val(this.env.current_page).prop("disabled",
2>this.env.pagecount)};this.check_mailvelope=function(a){if("undefined"!==typeof window.mailvelope)this.mailvelope_load(a);else $(window).on("mailvelope",function(){h.mailvelope_load(a)})};this.mailvelope_load=function(a){this.env.browser_capabilities&&(this.env.browser_capabilities.pgpmime=1);var b=this.env.user_id,d=function(e){h.mailvelope_keyring=e;h.mailvelope_init(a,e)};mailvelope.getVersion().then(function(e){mailvelope.VERSION=e;mailvelope.VERSION_MAJOR=Math.floor(parseFloat(e));return mailvelope.getKeyring(b)}).then(d,
function(e){mailvelope.createKeyring(b).then(d,function(f){console.error(f)})})};this.mailvelope_init=function(a,b){if(window.mailvelope)if("show"==a||"preview"==a||"print"==a)if(this.env.is_pgp_content)a=$(this.env.is_pgp_content).text(),h.mailvelope_display_container(this.env.is_pgp_content,a,b);else{if(this.env.pgp_mime_part){var d=this.display_message("loadingdata","loading"),e=this.env.pgp_mime_container;$.ajax({type:"GET",url:this.url("get",{_mbox:this.env.mailbox,_uid:this.env.uid,_part:this.env.pgp_mime_part}),
error:function(l,m,q){h.http_error(l,m,q,d)},success:function(l){h.mailvelope_display_container(e,l,b,d)}})}}else if("compose"==a){this.env.compose_commands.push("compose-encrypted");var f=2<=mailvelope.VERSION_MAJOR,g=0<$('[name="_is_html"]').val();f&&this.env.compose_commands.push("compose-encrypted-signed");if(this.env.pgp_mime_message){var k=this.set_busy(!0,this.get_label("loadingdata"));$.ajax({type:"GET",url:this.url("get",this.env.pgp_mime_message),error:function(l,m,q){h.http_error(l,m,q,
k);h.enable_command("compose-encrypted",!g);f&&h.enable_command("compose-encrypted-signed",!g)},success:function(l){h.set_busy(!1,null,k);g&&(h.command("toggle-editor",{html:!1,noconvert:!0}),$("#"+h.env.composebody).val(""));h.compose_encrypted({quotedMail:l});h.enable_command("compose-encrypted",!0);h.enable_command("compose-encrypted-signed",!1)}})}else this.enable_command("compose-encrypted",!g),f&&this.enable_command("compose-encrypted-signed",!g);this.addEventListener("actionafter",function(l){l.ret&&
"toggle-editor"==l.action&&(h.enable_command("compose-encrypted",!l.props.html),f&&h.enable_command("compose-encrypted-signed",!l.props.html))})}else"edit-identity"==a&&h.mailvelope_identity_keygen()};this.compose_encrypted_signed=function(a){a=a||{};a.signMsg=!0;this.compose_encrypted(a)};this.compose_encrypted=function(a){var b=$("#"+this.env.composebody).parent();if(h.mailvelope_editor)h.mailvelope_editor=null,h.compose_skip_unsavedcheck=!1,h.set_button("compose-encrypted","act"),b.removeClass("mailvelope").find("iframe:not([aria-hidden=true])").remove(),
$("#"+h.env.composebody).show(),$("[name='_pgpmime']").remove(),h.enable_command("toggle-editor","insert-response","save-response",!0),h.enable_command("spellcheck",!!window.googie),h.enable_command("insert-sig",!!(h.env.signatures&&h.env.identity&&h.env.signatures[h.env.identity])),h.triggerEvent("compose-encrypted",{active:!1});else{this.spellcheck_state()&&this.editor.spellcheck_stop();var d=a.quotedMail?{quotedMail:a.quotedMail,quotedMailIndent:!1}:{predefinedText:$("#"+this.env.composebody).val()};
a.signMsg&&(d.signMsg=a.signMsg);"reply"==this.env.compose_mode&&(d.quotedMailIndent=!0,d.quotedMailHeader=this.env.compose_reply_header);mailvelope.createEditorContainer("#"+b.attr("id"),h.mailvelope_keyring,d).then(function(e){h.mailvelope_editor=e;h.compose_skip_unsavedcheck=!0;h.set_button("compose-encrypted","sel");b.addClass("mailvelope");$("#"+h.env.composebody).hide();h.enable_command("spellcheck","insert-sig","toggle-editor","insert-response","save-response",!1);h.triggerEvent("compose-encrypted",
{active:!0});h.env.attachments&&!$.isEmptyObject(h.env.attachments)&&(h.alert_dialog(h.get_label("encryptnoattachments")),$.each(h.env.attachments,function(f,g){h.remove_from_attachment_list(f)}))},function(e){console.error(e);console.log(d)})}};this.mailvelope_submit_messageform=function(a,b){var d=[];$.each(["to","cc","bcc"],function(f,g){for(g=$.trim($('[name="_'+g+'"]').val());g.length&&rcube_check_email(g,!0);)f=RegExp.$2.replace(/^<+/,"").replace(/>+$/,""),d.push(f),g=g.substr(g.indexOf(f)+
f.length+1).replace(/^\s*,\s*/,"")});var e=0<d.length;h.mailvelope_keyring.validKeyForAddress(d).then(function(f){var g=[];$.each(f,function(m,q){!1===q&&(e=!1,g.push(m))});if(!e&&g.length)return h.simple_dialog(h.get_label("nopubkeyfor").replace("$email",g.join(", "))+"<p>"+h.get_label("searchpubkeyservers")+"</p>","encryptedsendialog",function(){h.mailvelope_search_pubkeys(g,function(){return!0})},{button:"search"}),!1;if(!e)return d.length||h.alert_dialog(h.get_label("norecipientwarning"),function(){$("[name='_to']").focus()}),
!1;var k=[],l=h.env.identities[$("[name='_from'] option:selected").val()];$.each(h.env.identities,function(m,q){k.push(q.email)});h.mailvelope_keyring.validKeyForAddress(k).then(function(m){valid_sender=null;$.each(m,function(q,p){if(!1!==p&&(valid_sender=q,valid_sender==l))return!1});if(!valid_sender&&!confirm(h.get_label("nopubkeyforsender")))return!1;d.push(valid_sender);h.mailvelope_editor.encrypt(d).then(function(q){var p=h.gui_objects.messageform,t=$("[name='_pgpmime']",p),v=h.set_busy(!0,a||
b?"savingmessage":"sendingmessage");p.target=h.get_save_target();p._draft.value=a?"1":"";p.action=h.add_url(p.action,"_unlock",v);p.action=h.add_url(p.action,"_framed",1);b&&(p.action=h.add_url(p.action,"_saveonly",1));t.length||(t=$('<input type="hidden" name="_pgpmime">').appendTo(p));t.val(q);p.submit()},function(q){console.log(q)})},function(m){console.error(m)})},function(f){console.error(f)});return!1};this.mailvelope_display_container=function(a,b,d,e){var f=function(g){$(a+" > iframe").remove();
h.hide_message(e);h.display_message(g.message,"error")};mailvelope.createDisplayContainer(a,b,d,{senderAddress:this.env.sender}).then(function(g){if(g.error&&g.error.message)return f(g.error);h.hide_message(e);$(a).addClass("mailvelope").children().not("iframe").hide();h.env.pgp_mime_part&&$("#attach"+h.env.pgp_mime_part).remove();setTimeout(function(){$(window).resize()},10)},f)};this.mailvelope_search_pubkeys=function(a,b,d){var e=[],f=new PublicKey(this.env.keyservers),g=h.display_message("","loading");
$.each(a,function(k,l){var m=$.Deferred();f.search(l,function(q,p){null!==p?m.resolve([l]):m.resolve([l].concat(q))});e.push(m)});$.when.apply($,e).then(function(){var k=[],l=[];$.each(arguments,function(m,q){m=q.shift();q.length?l=l.concat(q):k.push(m)});h.hide_message(g);b(!0);l.length&&h.mailvelope_key_import_dialog(l,d);k.length&&h.display_message(h.get_label("nopubkeyfor").replace("$email",k.join(", ")),"warning")}).fail(function(){console.error("Pubkey lookup failed with",arguments);h.hide_message(g);
h.display_message("pubkeysearcherror","error");b(!1)})};this.mailvelope_key_import_dialog=function(a,b){var d=$("<div>").addClass("listing pgpkeyimport");$.each(a,function(e,f){e=$("<div>").addClass("key");f.revoked&&e.addClass("revoked");f.disabled&&e.addClass("disabled");f.expired&&e.addClass("expired");e.append($("<label>").addClass("keyid").text(h.get_label("keyid")));e.append($("<a>").text(f.keyid.substr(-8).toUpperCase()).attr({href:f.info,target:"_blank",tabindex:"-1"}));e.append($("<label>").addClass("keylen").text(h.get_label("keylength")));
e.append($("<span>").text(f.keylen));f.expirationdate&&(e.append($("<label>").addClass("keyexpired").text(h.get_label("keyexpired"))),e.append($("<span>").text((new Date(1E3*f.expirationdate)).toDateString())));f.revoked&&e.append($("<span>").addClass("keyrevoked").text(h.get_label("keyrevoked")));var g=$("<ul>").addClass("uids");$.each(f.uids,function(k,l){k=$("<li>").addClass("uid");l.revoked&&k.addClass("revoked");l.disabled&&k.addClass("disabled");l.expired&&k.addClass("expired");g.append(k.text(l.uid))});
e.append(g);e.append($("<button>").attr("rel",f.keyid).text(h.get_label("import")).addClass("button import importkey").prop("disabled",f.revoked||f.disabled||f.expired));d.append(e)});h.simple_dialog($("<div>").append($("<p>").html(h.get_label("encryptpubkeysfound"))).append(d),h.get_label("importpubkeys"),null,{cancel_label:"close",cancel_button:"close"});d.on("click","button.importkey",function(){var e=$(this),f=e.attr("rel"),g=new PublicKey(h.env.keyservers),k=h.display_message("","loading");g.get(f,
function(l,m){h.hide_message(k);m?h.display_message("keyservererror","error"):b?b(l):h.mailvelope_keyring.importPublicKey(l).then(function(q){"REJECTED"!==q&&(q=f.substr(-8).toUpperCase(),e.closest(".key").fadeOut(),h.display_message(h.get_label("keyimportsuccess").replace("$key",q),"confirmation"))},function(q){console.log(q)})})})};this.mailvelope_identity_keygen=function(){var a=$(this.gui_objects.editform).find(".identity-encryption").first(),b=$.trim($(this.gui_objects.editform).find(".ff_email").val());
a.length&&b&&this.mailvelope_keyring.createKeyGenContainer&&this.mailvelope_keyring.validKeyForAddress([b]).then(function(d){var e=[];if(d&&d[b]&&Array.isArray(d[b].keys)){for(var f=[],g=0;g<d[b].keys.length;g++)f.push(function(k){return h.mailvelope_keyring.hasPrivateKey(k.fingerprint).then(function(l){l&&e.push(k)})}(d[b].keys[g]));return Promise.all(f).then(function(){return e})}return e}).then(function(d){var e=a.find(".identity-encryption-block").empty();if(d&&d.length){$("<p>").text(h.get_label("encryptionprivkeysinmailvelope").replace("$nr",
d.length)).appendTo(e);var f=$("<ul>").addClass("keylist").appendTo(e);$.each(d,function(g,k){$("<li>").appendTo(f).append($("<strong>").addClass("fingerprint").text(String(k.fingerprint).toUpperCase())).append($("<span>").addClass("identity").text("<"+b+"> "))})}else $("<p>").text(h.get_label("encryptionnoprivkeysinmailvelope")).appendTo(e);$("<button>").attr("type","button").addClass("button create").text(h.get_label("encryptioncreatekey")).appendTo(e).on("click",function(){h.mailvelope_show_keygen_container(e,
b)});$("<span>").addClass("space").html(" ").appendTo(e);$("<button>").attr("type","button").addClass("button settings").text(h.get_label("openmailvelopesettings")).appendTo(e).on("click",function(){h.mailvelope_keyring.openSettings()});a.show();h.triggerEvent("identity-encryption-show",{container:a})}).catch(function(d){console.error("Mailvelope keyring error",d)})};this.mailvelope_show_keygen_container=function(a,b){var d=(new Date).getTime(),e={userIds:[{email:b,fullName:$.trim($(h.gui_objects.editform).find(".ff_name").val())}],
keySize:4096};$("<div>").attr("id","mailvelope-keygen-container-"+d).css({height:"245px",marginBottom:"10px"}).appendTo(a.empty());this.mailvelope_keyring.createKeyGenContainer("#mailvelope-keygen-container-"+d,e).then(function(f){if(f instanceof Error)throw f;$("<button>").attr("type","button").addClass("button mainaction generate").text(h.get_label("generate")).appendTo(a).on("click",function(){var g=$(this).prop("disabled",!0);f.generate().then(function(k){"string"===typeof k&&0<k.indexOf("BEGIN PGP")&&
(h.display_message(h.get_label("keypaircreatesuccess").replace("$identity",b),"confirmation"),h.mailvelope_identity_keygen())}).catch(function(k){debugger;h.display_message(k.message||"errortitle","error");g.prop("disabled",!1)})});$("<span>").addClass("space").html(" ").appendTo(a);$("<button>").attr("type","button").addClass("button cancel").text(h.get_label("cancel")).appendTo(a).on("click",function(){h.mailvelope_identity_keygen()});h.triggerEvent("identity-encryption-update",{container:a})}).catch(function(f){h.display_message("errortitle",
"error");h.mailvelope_identity_keygen()})};this.expunge_mailbox=function(a){var b={_mbox:a};if(a==this.env.mailbox){var d=this.set_busy(!0,"loading");b._reload=1;this.env.search_request&&(b._search=this.env.search_request)}this.http_post("expunge",b,d)};this.purge_mailbox=function(a){this.confirm_dialog(this.get_label("purgefolderconfirm"),"delete",function(){var b={_mbox:a};if(a==h.env.mailbox){var d=h.set_busy(!0,"loading");b._reload=1}h.http_post("purge",b,d)});return!1};this.purge_mailbox_test=
function(){return this.env.exists&&(this.env.mailbox==this.env.trash_mailbox||this.env.mailbox==this.env.junk_mailbox||this.env.mailbox.startsWith(this.env.trash_mailbox+this.env.delimiter)||this.env.mailbox.startsWith(this.env.junk_mailbox+this.env.delimiter))};this.mark_all_read=function(a,b){var d=[],e=this.message_list,f=a||this.env.mailbox;a={_uid:"*",_flag:"read",_mbox:f,_folders:b};if("string"!=typeof b){var g=this.mark_all_read_state(f);if(!g)return;if(1<g){$.each({cur:1,sub:2,all:4},function(l,
m){var q="readallmode"+l,p=$("<label>").attr("for",q).text(h.get_label("folders-"+l));l=$("<input>").attr({type:"radio",value:l,name:"mode",id:q,disabled:!(g&m)});d.push($("<li>").append([l,p]))});var k=$('<ul class="proplist">').append(d);$("input:not([disabled])",k).first().attr("checked",!0);this.simple_dialog(k,this.get_label("markallread"),function(){h.mark_all_read(f,$("input:checked",k).val());return!0},{button:"mark",button_class:"save"});return}a._folders="cur"}$.each(e?e.rows:[],function(l,
m){m.unread&&(m=h.env.messages[l].mbox,("all"==b||m==h.env.mailbox||"sub"==b&&m.startsWith(h.env.mailbox+h.env.delimiter))&&h.set_message(l,"unread",!1))});this.http_post("mark",a,this.display_message("markingmessage","loading"))};this.mark_all_read_state=function(a){var b=0,d=this.treelist.get_item(a||this.env.mailbox);a=$(d).is(".unread")?1:0;d=$("li.unread",d).length;var e=$("li.unread",h.gui_objects.folderlist).length;b=b+a+(d?2:0)+(e>a+d?4:0);this.enable_command("mark-all-read",0<b);return b};
this.bounce=function(a,b,d){a=this.get_single_uid();a=this.url("bounce",{_framed:1,_uid:a,_mbox:this.get_message_mailbox(a)});var e=$("<iframe>").attr("src",a),f=function(){var k=$("iframe",e)[0].contentWindow.rcmail;return{rc:k,form:k.gui_objects.messageform}},g=function(){var k={},l=f();$.each($(l.form).serializeArray(),function(){k[this.name]=this.value});k._uid=l.rc.env.uid;k._mbox=l.rc.env.mailbox;delete k._action;delete k._task;if(k._to||k._cc||k._bcc)h.http_post("bounce",k,h.set_busy(!0,"sendingmessage")),
e.dialog("close")};this.hide_menu("forwardmenu",d);e=this.simple_dialog(e,this.gettext("bouncemsg"),function(){var k=f();return"object"==typeof k.form&&k.rc.check_compose_address_fields(g,k.form)?g():!1},{button:"bounce",width:400,height:300});return!0};this.open_compose_step=function(a){a=this.url("mail/compose",a);this.env.compose_extwin&&!this.env.extwin?this.open_window(a):(this.redirect(a),this.env.extwin&&window.resizeTo(Math.max(this.env.popup_width,$(window).width()),$(window).height()+24))};
this.init_messageform=function(){if(!this.gui_objects.messageform)return!1;var a,b=$("[name='_from']"),d=$("[name='_to']"),e=$("[name='_subject']"),f=$("[name='_message']").get(0),g="1"==$("[name='_is_html']").val(),k=this.opener();k&&"compose"==k.env.action&&(setTimeout(function(){1<opener.history.length?opener.history.back():k.redirect(k.get_task_url("mail"))},100),this.env.opened_extwin=!0);if(!g){f.value&&void 0!==f.defaultValue&&(f.value=f.defaultValue);var l=this.env.top_posting&&this.env.compose_mode?
0:f.value.length;"select-one"==b.prop("type")&&(this.set_caret_pos(f,0),this.change_identity(b[0]));this.set_caret_pos(f,l);l&&$(f).scrollTop(f.scrollHeight)}this.env.save_localstorage&&this.compose_restore_dialog(0,g);""==d.val()?a=d:""==e.val()?a=e:f&&(a=f);this.env.compose_focus_elem=this.init_messageform_inputs(a);this.compose_field_hash(!0);this.auto_save_start()};this.init_messageform_inputs=function(a){var b,d=$("[name='_to']"),e=["cc","bcc","replyto","followupto"];this.init_address_input_events(d);
for(b in e)this.init_address_input_events($("[name='_"+e[b]+"']"));a||(a=d);return $(a).focus().get(0)};this.compose_restore_dialog=function(a,b){var d,e=this.local_storage_get_item("compose.index",[]),f=function(k){++k<e.length&&h.compose_restore_dialog(k,b)};for(d=a||0;d<e.length;d++){var g=e[d];if(a=this.local_storage_get_item("compose."+g,null,!0)){if(a.changed&&g==this.env.compose_id){this.restore_compose_form(g,b);break}if(!(this.env.draft_id&&a.draft_id&&a.draft_id!=this.env.draft_id||this.env.reply_msgid&&
a.reply_msgid!=this.env.reply_msgid)&&a.changed&&a.session!=this.env.session_id){this.show_popup_dialog(this.get_label("restoresavedcomposedata").replace("$date",(new Date(a.changed)).toLocaleString()).replace("$subject",a._subject).replace(/\n/g,"<br/>"),this.get_label("restoremessage"),[{text:this.get_label("restore"),"class":"mainaction restore",click:function(){h.restore_compose_form(g,b);h.remove_compose_data(g);h.save_compose_form_local();$(this).dialog("close")}},{text:this.get_label("delete"),
"class":"delete",click:function(){h.remove_compose_data(g);$(this).dialog("close");f(d)}},{text:this.get_label("ignore"),"class":"cancel",click:function(){$(this).dialog("close");f(d)}}]);break}}}};this.init_address_input_events=function(a,b){!b&&0<this.env.autocomplete_threads&&(b={threads:this.env.autocomplete_threads,sources:this.env.autocomplete_sources});a.keydown(function(d){return h.ksearch_keydown(d,this,b)}).attr({autocomplete:"off","aria-autocomplete":"list","aria-expanded":"false",role:"combobox"});
a=function(d){h.ksearch_pane&&d.target===h.ksearch_pane.get(0)||h.ksearch_hide()};$(document).on("click",a);document.addEventListener("scroll",a,!0)};this.submit_messageform=function(a,b){var d=this.gui_objects.messageform;if(d){if(!b&&this.env.is_sent)return this.simple_dialog(this.get_label("messageissent"),"",function(){h.submit_messageform(!1,!0);return!0});if(this.mailvelope_editor)return this.mailvelope_submit_messageform(a,b);var e=this.set_busy(!0,a||b?"savingmessage":"sendingmessage"),f=
this.spellcheck_lang(),g=[];$("li",this.gui_objects.attachmentlist).each(function(){g.push(this.id.replace(/^rcmfile/,""))});$('[name="_attachments"]',d).val(g.join());d.target=this.get_save_target();d._draft.value=a?"1":"";d.action=this.add_url(d.action,"_unlock",e);d.action=this.add_url(d.action,"_framed",1);f&&(d.action=this.add_url(d.action,"_lang",f));b&&(d.action=this.add_url(d.action,"_saveonly",1));this.submit_timer=setTimeout(function(){h.set_busy(!1,null,e);h.display_message("requesttimedout",
"error")},1E3*this.env.request_timeout);d.submit()}};this.compose_recipient_select=function(a){var b,d=0,e=a.get_selection();for(b=0;b<e.length;b++)a=e[b],this.env.contactdata[a]&&d++;this.enable_command("add-recipient",d)};this.compose_add_recipient=function(a){a||(a=$(this.env.focused_field).filter(":visible"),a=a.length?a.attr("id").replace("_",""):"to");var b=[],d=$("#_"+a),e=this.contact_list.get_selection();if(this.contact_list&&e.length)for(var f,g=0;g<e.length;g++)if((f=e[g])&&this.env.contactdata[f]&&
(b.push(this.env.contactdata[f]),"E"==f.charAt(0)&&0>this.env.contactdata[f].indexOf("@")&&d.length)){var k=f.substr(1);this.group2expand[k]={name:this.env.contactdata[f],input:d.get(0)};this.http_request("group-expand",{_source:this.env.source,_gid:k},!1)}b.length&&d.length&&((e=d.val())&&!/[,;]\s*$/.test(e)&&(e+=", "),d.val(e+b.join(", ")+", ").change(),this.triggerEvent("add-recipient",{field:a,recipients:b}));return b.length};this.check_compose_input=function(a){var b=$("[name='_subject']");for(e in this.env.attachments)if("object"===
typeof this.env.attachments[e]&&!this.env.attachments[e].complete)return this.alert_dialog(this.get_label("notuploadedwarning")),!1;if(!this.env.nosubject_warned&&""==b.val()){var d=$("<input>").attr({type:"text",size:40});var e=$('<div class="prompt">').append($('<p class="message">').text(this.get_label("nosubjectwarning"))).append(d);var f=function(){b.val(d.val());g.dialog("close");h.check_compose_input(a)&&h.command(a,{nocheck:!0})};var g=this.show_popup_dialog(e,this.get_label("nosubjecttitle"),
[{text:this.get_label("sendmessage"),"class":"mainaction send",click:function(){f()}},{text:this.get_label("cancel"),"class":"cancel",click:function(){b.focus();g.dialog("close")}}],{dialogClass:"warning"});d.select().keydown(function(k){13==k.which&&f()});this.env.nosubject_warned=!0;return!1}if(!this.mailvelope_editor&&!this.editor.get_content()&&!confirm(this.get_label("nobodywarning")))return this.editor.focus(),!1;if(!this.check_compose_address_fields(a))return!1;this.editor.save();return!0};
this.check_compose_address_fields=function(a,b){b||(b=window.document);var d,e=this.env.max_disclosed_recipients,f=$("[name='_to']",b),g=$("[name='_cc']",b),k=$("[name='_bcc']",b),l=$("[name='_from']",b);b=function(p){p=$.map(p,function(t){t=$.trim(t.val());return t.length?t:null});return p.join(",").replace(/^[\s,;]+/,"").replace(/[\s,;]+$/,"")};if("text"==l.prop("type")&&!rcube_check_email(l.val(),!0))return this.alert_dialog(this.get_label("nosenderwarning"),function(){l.focus()}),!1;if(!rcube_check_email(b([f,
g,k]),!0))return this.alert_dialog(this.get_label("norecipientwarning"),function(){f.focus()}),!1;if(e&&!this.env.disclosed_recipients_warned&&rcube_check_email(d=b([f,g]),!0,!0)>e){var m=function(p){p&&(p=k.val(),k.val((p?p+", ":"")+d).change(),f.val("").change(),g.val("").change());q.dialog("close");"function"==typeof a?a():a&&h.command(a,{nocheck:!0})};var q=this.show_popup_dialog(this.get_label("disclosedrecipwarning"),this.get_label("disclosedreciptitle"),[{text:this.get_label("sendmessage"),
click:function(){m(!1)},"class":"mainaction"},{text:this.get_label("bccinstead"),click:function(){m(!0)}},{text:this.get_label("cancel"),click:function(){q.dialog("close")},"class":"cancel"}],{dialogClass:"warning"});this.env.disclosed_recipients_warned=!0;return!1}return!0};this.toggle_editor=function(a,b,d){b=this.editor.toggle(a.html,a.noconvert||!1);d=$("#"+this.editor.id).data("control")||$(d?d.target:[]);a=b?a.html?"html":"plain":a.html?"plain":"html";$("[name='_is_html']").val("html"==a?1:
0);d.is("[type=checkbox]")?d.prop("checked","html"==a):d.val(a);return b};this.insert_response=function(a){this.editor.replace(this.env.textresponses[a]);this.display_message("responseinserted","confirmation")};this.save_response=function(){var a={},b=this.editor.get_content({selection:!0,format:"text",nosig:!0}),d='<form class="propform"><div class="prop block"><label for="ffresponsename">'+this.get_label("responsename")+'</label><input type="text" name="name" id="ffresponsename" size="40" /></div><div class="prop block"><label for="ffresponsetext">'+
this.get_label("responsetext")+'</label><textarea name="text" id="ffresponsetext" cols="40" rows="8"></textarea></div></form>';a[this.get_label("save")]=function(e){e=$("#ffresponsename").val();var f=$("#ffresponsetext").val();if(!f)return $("#ffresponsetext").select(),!1;e||(e=f.replace(/[\r\n]+/g," ").substring(0,40));var g=h.display_message("savingresponse","loading");h.http_post("settings/responses",{_insert:1,_name:e,_text:f},g);$(this).dialog("close")};a[this.get_label("cancel")]=function(){$(this).dialog("close")};
this.show_popup_dialog(d,this.get_label("newresponse"),a,{button_classes:["mainaction save","cancel"]});$("#ffresponsetext").val(b);$("#ffresponsename").select()};this.add_response_item=function(a){var b=a.key;this.env.textresponses[b]=a;if(this.gui_objects.responseslist){var d=$("<li>").appendTo(this.gui_objects.responseslist);$("<a>").addClass("insertresponse active").attr({href:"#",rel:b,tabindex:"0"}).html(this.quote_html(a.name)).appendTo(d).mousedown(function(e){return rcube_event.cancel(e)}).on("mouseup keypress",
function(e){if("mouseup"==e.type||13==rcube_event.get_keycode(e))return h.command("insert-response",$(this).attr("rel")),$(document.body).trigger("mouseup"),rcube_event.cancel(e)})}};this.edit_responses=function(){};this.delete_response=function(a){!a&&this.responses_list&&(a=this.responses_list.get_selection()[0]);a&&this.confirm_dialog(this.get_label("deleteresponseconfirm"),"delete",function(){h.http_post("settings/delete-response",{_key:a},!1)})};this.spellcheck_state=function(){var a=this.editor.spellcheck_state();
$.each(this.buttons.spellcheck||[],function(b,d){$("#"+d.id)[a?"addClass":"removeClass"]("selected")});return a};this.spellcheck_lang=function(){return this.editor.get_language()};this.spellcheck_lang_set=function(a){this.editor.set_language(a)};this.spellcheck_resume=function(a){this.editor.spellcheck_resume(a)};this.set_draft_id=function(a){if(a&&a!=this.env.draft_id){var b={task:"mail",action:""};(b=this.opener(!1,b)||this.opener(!0,b))&&b.env.mailbox==this.env.drafts_mailbox&&b.command("checkmail");
this.env.draft_id=a;$("[name='_draft_saveid']").val(a)}this.remove_compose_data(this.env.compose_id);this.compose_skip_unsavedcheck=!1};this.get_save_target=function(){this.dummy_iframe("savetarget","about:blank").on("load error",function(){$(this).remove()});return"savetarget"};this.auto_save_start=function(){this.env.draft_autosave&&(this.save_timer=setTimeout(function(){h.command("savedraft")},1E3*this.env.draft_autosave));!this.local_save_timer&&window.localStorage&&this.env.save_localstorage&&
(this.compose_type_activity=this.compose_type_activity_last=0,$(document).keypress(function(a){h.compose_type_activity++}),this.local_save_timer=setInterval(function(){h.compose_type_activity>h.compose_type_activity_last&&(h.save_compose_form_local(),h.compose_type_activity_last=h.compose_type_activity)},5E3),$(window).on("unload",function(){h.env.server_error||h.remove_compose_data(h.env.compose_id)}));window.onbeforeunload||(window.onbeforeunload=function(){if(!h.compose_skip_unsavedcheck&&h.cmp_hash!=
h.compose_field_hash())return h.get_label("notsentwarning")});this.busy=!1};this.compose_field_hash=function(a){var b,d,e,f="",g=["to","cc","bcc","subject"];for(b=0;b<g.length;b++)if(e=$('[name="_'+g[b]+'"]').val())f+=e+":";f+=this.editor.get_content({refresh:!1});if(this.env.attachments)for(d in this.env.attachments)f+=d;this.mailvelope_editor&&(f+=";"+(new Date).getTime());a&&(this.cmp_hash=f);return f};this.save_compose_form_local=function(){if(this.env.save_localstorage){var a={session:this.env.session_id,
changed:(new Date).getTime()},b=!0;this.editor.save();this.env.draft_id&&(a.draft_id=this.env.draft_id);this.env.reply_msgid&&(a.reply_msgid=this.env.reply_msgid);$("input, select, textarea",this.gui_objects.messageform).each(function(f,g){switch(g.tagName.toLowerCase()){case "input":if("button"==g.type||"submit"==g.type||"hidden"==g.type&&"_is_html"!=g.name)break;a[g.name]="checkbox"!=g.type||g.checked?$(g).val():"";""!=a[g.name]&&"hidden"!=g.type&&(b=!1);break;case "select":a[g.name]=$("option:checked",
g).val();break;default:a[g.name]=$(g).val(),""!=a[g.name]&&(b=!1)}});if(!b){var d=this.local_storage_get_item("compose.index",[]),e=this.env.compose_id;0>$.inArray(e,d)&&d.push(e);this.local_storage_set_item("compose."+e,a,!0);this.local_storage_set_item("compose.index",d)}}};this.restore_compose_form=function(a,b){(a=this.local_storage_get_item("compose."+a,!0))&&"object"==typeof a&&($.each(a,function(d,e){"_"==d[0]&&(d=$("[name="+d+"]"),d[0]&&"checkbox"==d[0].type?d.prop("checked",""!=e):d.val(e).change())}),
("1"==a._is_html&&!b||"1"!=a._is_html&&b)&&this.command("toggle-editor",{id:this.env.composebody,html:!b,noconvert:!0}))};this.remove_compose_data=function(a){var b=this.local_storage_get_item("compose.index",[]);0<=$.inArray(a,b)&&(this.local_storage_remove_item("compose."+a),this.local_storage_set_item("compose.index",$.grep(b,function(d,e){return d!=a})))};this.clear_compose_data=function(){var a,b=this.local_storage_get_item("compose.index",[]);for(a=0;a<b.length;a++)this.local_storage_remove_item("compose."+
b[a]);this.local_storage_remove_item("compose.index")};this.change_identity=function(a,b){if(!a||!a.options)return!1;var d=$(a).val();a=this.env.signatures&&this.env.signatures[d];var e=this.env.identity,f=b?b:this.env.show_sig;a?(this.enable_command("insert-sig",!0),this.env.compose_commands.push("insert-sig"),a=!0):this.enable_command("insert-sig",!1);if(!this.env.identities_initialized&&(this.env.identities_initialized=!0,this.env.show_sig_later&&(this.env.show_sig=!0),this.env.opened_extwin))return;
$.each(["replyto","bcc"],function(){var g=e&&h.env.identities[e]?h.env.identities[e][this]:"",k=d&&h.env.identities[d]?h.env.identities[d][this]:"",l=$('[name="_'+this+'"]'),m=l.val();if(g&&m){var q=new RegExp("\\s*"+RegExp.escape(g)+"\\s*");m=m.replace(q,"")}m=String(m).replace(/[,;]\s*[,;]/g,",").replace(/^[\s,;]+/,"");k&&-1==m.indexOf(k)&&-1==m.indexOf(k.replace(/"/g,""))&&(m&&(m=m.replace(/[,;\s]+$/,"")+", "),m+=k+", ");(g||k)&&l.val(m).change()});this.editor&&this.editor.change_signature(d,f);
b&&a&&this.display_message("siginserted","confirmation");this.env.identity=d;this.triggerEvent("change_identity");return!0};this.upload_input=function(a){$("#"+a+' input[type="file"]').click()};this.upload_file=function(a,b,d){if(a){var e,f=[];$("input",a).each(function(){if(this.files){e=this.name;for(var g=0;g<this.files.length;g++)f.push(this.files[g])}});return this.file_upload(f,{_id:this.env.compose_id||""},{name:e,action:b,lock:d})}};this.add2attachment_list=function(a,b,d){d&&this.triggerEvent("fileuploaded",
{name:a,attachment:b,id:d});this.env.attachments||(this.env.attachments={});d&&this.env.attachments[d]&&delete this.env.attachments[d];this.env.attachments[a]=b;if(!this.gui_objects.attachmentlist)return!1;var e,f=$("<li>");!b.complete&&0>b.html.indexOf("<")&&(b.html='<span class="uploading">'+b.html+"</span>");!b.complete&&this.env.loadingicon&&(b.html='<img src="'+this.env.loadingicon+'" alt="" class="uploading" />'+b.html);if(!b.complete){var g=this.get_label("cancel");b.html='<a title="'+g+'" onclick="return rcmail.cancel_attachment_upload(\''+
a+'\');" href="#cancelupload" class="cancelupload">'+(this.env.cancelicon?'<img src="'+this.env.cancelicon+'" alt="'+g+'" />':'<span class="inner">'+g+"</span>")+"</a>"+b.html}f.attr("id",a).addClass(b.classname).html(b.html).find(".attachment-name").on("mouseover",function(){rcube_webmail.long_subject_title_ex(this)});d&&(e=document.getElementById(d))?f.replaceAll(e):f.appendTo(this.gui_objects.attachmentlist);g=$(this.gui_objects.attachmentlist).attr("data-tabindex")||"0";f.find("a").attr("tabindex",
g);this.triggerEvent("fileappended",{name:a,attachment:b,id:d,item:f});return!0};this.remove_from_attachment_list=function(a){this.env.attachments&&(delete this.env.attachments[a],$("#"+a).remove())};this.remove_attachment=function(a){a&&this.env.attachments[a]&&this.http_post("remove-attachment",{_id:this.env.compose_id,_file:a});return!1};this.cancel_attachment_upload=function(a){if(!a||!this.uploads[a])return!1;this.remove_from_attachment_list(a);this.uploads[a].abort();return!1};this.rename_attachment=
function(a){var b=this.env.attachments?this.env.attachments[a]:null;if(b){var d=$("<input>").attr({type:"text",size:50}).val(b.name),e=$("<label>").text(this.get_label("namex")).append(d);this.simple_dialog(e,"attachmentrename",function(){var f;if((f=d.val())&&f!=b.name)return h.http_post("rename-attachment",{_id:h.env.compose_id,_file:a,_name:f},h.set_busy(!0,"loading")),!0})}};this.rename_attachment_handler=function(a,b){var d=this.env.attachments?this.env.attachments[a]:null;d&&b&&(d.name=b,$("#"+
a+" .attachment-name").text(b).attr("title",""))};this.add_contact=function(a,b){a&&this.http_post("addcontact",{_address:a,_reload:b})};this.qsearch=function(a){if(""!=a||$(this.gui_objects.qsearchbox).val()||$(this.gui_objects.search_interval).val()){var b=this.set_busy(!0,"searching");a=this.search_params(a);var d="compose"==this.env.action&&this.contact_list?"search-contacts":"search";this.message_list?this.clear_message_list():this.contact_list&&this.list_contacts_clear();this.env.source&&(a._source=
this.env.source);this.env.group&&(a._gid=this.env.group);this.env.current_page=1;a=this.http_request(d,a,b);this.env.qsearch={lock:b,request:a};this.enable_command("set-listmode",this.env.threads&&"base"==(this.env.search_scope||"base"));return!0}return!1};this.continue_search=function(a){var b=this.set_busy(!0,"stillsearching");setTimeout(function(){var d=h.search_params();d._continue=a;h.env.qsearch={lock:b,request:h.http_request("search",d,b)}},100)};this.search_params=function(a,b){var d,e={},
f=[],g=this.env.search_mods,k=this.env.search_scope||"base",l="all"==k?"*":this.env.mailbox;!b&&this.gui_objects.search_filter&&(b=this.gui_objects.search_filter.value);!a&&this.gui_objects.qsearchbox&&(a=this.gui_objects.qsearchbox.value);this.gui_objects.search_interval&&(e._interval=$(this.gui_objects.search_interval).val());if(a&&(e._q=a,g&&this.message_list&&(g=g[l]||g["*"]),g)){for(d in g)f.push(d);e._headers=f.join(",")}e._layout=this.env.layout;e._filter=b;e._scope=k;l&&"all"!=k&&(e._mbox=
l);return e};this.reset_search_filter=function(){this.filter_disabled=!0;this.gui_objects.search_filter&&$(this.gui_objects.search_filter).val("ALL").change();this.filter_disabled=!1};this.reset_qsearch=function(a){this.gui_objects.qsearchbox&&(this.gui_objects.qsearchbox.value="");this.gui_objects.search_interval&&$(this.gui_objects.search_interval).val("");this.env.qsearch&&this.abort_request(this.env.qsearch);a&&(this.env.search_scope="base",this.reset_search_filter());this.env.qsearch=null;this.env.search_request=
null;this.env.search_id=null;this.select_all_mode=!1;this.enable_command("set-listmode",this.env.threads)};this.set_searchscope=function(a){var b=this.env.search_scope;this.env.search_scope=a;a!=b&&this.env.search_request&&(!this.qsearch(this.gui_objects.qsearchbox.value)&&this.env.search_filter&&"ALL"!=this.env.search_filter&&this.filter_mailbox(this.env.search_filter),"all"!=a&&this.select_folder(this.env.mailbox,"",!0))};this.set_searchinterval=function(a){var b=this.env.search_interval;this.env.search_interval=
a;a!=b&&this.env.search_request&&(!this.qsearch(this.gui_objects.qsearchbox.value)&&this.env.search_filter&&"ALL"!=this.env.search_filter&&this.filter_mailbox(this.env.search_filter),a&&this.select_folder(this.env.mailbox,"",!0))};this.set_searchmods=function(a){var b=this.env.mailbox;"all"==(this.env.search_scope||"base")&&(b="*");this.env.search_mods||(this.env.search_mods={});b&&(this.env.search_mods[b]=a)};this.is_multifolder_listing=function(){return void 0!==this.env.multifolder_listing?this.env.multifolder_listing:
this.env.search_request&&"base"!=(this.env.search_scope||"base")};this.sent_successfully=function(a,b,d,e){this.display_message(b,a);this.compose_skip_unsavedcheck=!0;if(this.env.extwin){e||this.lock_form(this.gui_objects.messageform);var f={task:"mail",action:""};if(f=this.opener(!1,f)||this.opener(!0,f))f.display_message(b,a),d&&0<=$.inArray(f.env.mailbox,d)&&f.command("checkmail");e||setTimeout(function(){window.close()},1E3)}else e||setTimeout(function(){h.list_mailbox()},500);e&&(this.env.is_sent=
!0)};this.image_rotate=function(){var a=this.image_style?this.image_style.rotate||0:0;this.image_style.rotate=180<a?0:a+90;this.apply_image_style()};this.image_scale=function(a){this.image_style.scale=Math.max(.1,(this.image_style?this.image_style.scale||1:1)+.1*("-"==a?-1:1));this.apply_image_style()};this.apply_image_style=function(){var a=[],b=$(this.gui_objects.messagepartframe).contents().find("head");$("#image-style",b).remove();$.each({scale:"",rotate:"deg"},function(d,e){var f=h.image_style[d];
f&&a.push(d+"("+f+e+")")});a&&b.append($('<style id="image-style">').text("img { transform: "+a.join(" ")+"}"))};this.import_state_set=function(a){this.import_dialog&&(this.import_state=a,$(this.import_dialog).parent().find(".ui-dialog-buttonset > button").first().attr("disabled","error"!=a))};this.ksearch_keydown=function(a,b,d){this.ksearch_timer&&clearTimeout(this.ksearch_timer);var e=rcube_event.get_keycode(a);switch(e){case 38:case 40:if(!this.ksearch_visible())return;b=38==e?1:0;e=this.ksearch_pane.find("li.selected")[0];
e||(e=this.ksearch_pane.__ul.firstChild);e&&this.ksearch_select(b?e.previousSibling:e.nextSibling);return rcube_event.cancel(a);case 9:if(rcube_event.get_modifier(a)==SHIFT_KEY||!this.ksearch_visible()){this.ksearch_hide();return}case 13:if(!this.ksearch_visible())return!1;this.insert_recipient(this.ksearch_selected);this.ksearch_hide();return 9==e?null:rcube_event.cancel(a);case 27:this.ksearch_hide();return;case 37:case 39:return}this.ksearch_timer=setTimeout(function(){h.ksearch_get_results(d)},
200);this.ksearch_input=b;return!0};this.ksearch_visible=function(){return null!==this.ksearch_selected&&void 0!==this.ksearch_selected&&this.ksearch_value};this.ksearch_select=function(a){this.ksearch_pane&&a&&this.ksearch_pane.find("li.selected").removeClass("selected").removeAttr("aria-selected");a&&($(a).addClass("selected").attr("aria-selected","true"),this.ksearch_selected=a._rcm_id,$(this.ksearch_input).attr("aria-activedescendant","rcmkSearchItem"+this.ksearch_selected))};this.insert_recipient=
function(a){if(null!==a&&this.env.contacts[a]&&this.ksearch_input){var b=!1,d="";a=this.env.contacts[a];this.ksearch_destroy();"object"===typeof a&&"group"==a.type&&!a.email&&a.id?(d=a.name+", ",this.group2expand[a.id]=$.extend({input:this.ksearch_input},a),this.http_request("mail/group-expand",{_source:a.source,_gid:a.id},!1)):"object"===typeof a&&a.name?(d=a.name+", ",b=!0):"string"===typeof a&&(d=a+", ",b=!0);this.ksearch_input_replace(this.ksearch_value,d);b&&(this.triggerEvent("autocomplete_insert",
{field:this.ksearch_input,insert:d,data:a,search:this.ksearch_value_last,result_type:"person"}),this.ksearch_value_last=null,this.compose_type_activity++)}};this.replace_group_recipients=function(a,b){this.group2expand[a]&&(this.ksearch_input_replace(this.group2expand[a].name,b,this.group2expand[a].input),this.triggerEvent("autocomplete_insert",{field:this.group2expand[a].input,insert:b,data:this.group2expand[a],search:this.ksearch_value_last,result_type:"group"}),this.ksearch_value_last=null,this.group2expand[a]=
null,this.compose_type_activity++)};this.ksearch_get_results=function(a){this.ksearch_pane&&this.ksearch_pane.is(":visible")&&this.ksearch_pane.hide();var b=this.ksearch_input_get(),d=this.env.autocomplete_min_length,e=this.ksearch_data;b=$.trim(b);b!=this.ksearch_value&&(this.ksearch_destroy(),b.length&&b.length<d?this.ksearch_info||(this.ksearch_info=this.display_message(this.get_label("autocompletechars").replace("$min",d))):(d=this.ksearch_value,this.ksearch_value_last=this.ksearch_value=b,!b.length||
d&&d.length&&b.startsWith(d)&&(!e||0>=e.num)&&this.env.contacts&&!this.env.contacts.length||(e=a&&a.sources?a.sources:[""],this.ksearch_data={id:this.multi_thread_http_request({items:e,threads:a&&a.threads?a.threads:1,action:a&&a.action?a.action:"mail/autocomplete",postdata:{_search:b,_source:"%s"},lock:this.display_message("searching","loading")}),sources:e.slice(),num:e.length})))};this.ksearch_query_results=function(a,b,d){this.multi_thread_http_response(a,d);if(this.ksearch_value&&(!this.ksearch_input||
b==this.ksearch_value)){var e,f;var g=this.is_framed();var k=this.ksearch_value,l=this.env.autocomplete_max?this.env.autocomplete_max:15;this.ksearch_pane||(b=$("<ul>"),this.ksearch_pane=$("<div>").attr({id:"rcmKSearchpane",role:"listbox","class":"select-menu inline"}).css({position:"absolute","z-index":3E4}).append(b).appendTo(g?parent.document.body:document.body),this.ksearch_pane.__ul=b[0],this.triggerEvent("autocomplete_create",{obj:this.ksearch_pane}));b=this.ksearch_pane.__ul;if(d&&this.ksearch_pane.data("reqid")==
d)l-=b.childNodes.length;else{this.ksearch_pane.data("reqid",d);b.innerHTML="";this.env.contacts=[];var m=(e=$("html").is(".layout-small,.layout-phone")&&1==$(this.ksearch_input).parents(".ac-input").length)?$(this.ksearch_input).parents(".ac-input")[0]:$(this.ksearch_input)[0];var q=$(m).offset();q.left-=$(document.documentElement).scrollLeft();q.top-=$(document.documentElement).scrollTop();if(g)try{parent.$("iframe").each(function(){if(this.contentWindow==window){var v=$(this).offset();q.left+=
v.left;q.top+=v.top}})}catch(v){}var p=$(g?parent:window).width();g=$(m).outerWidth();var t=200<p-q.left?q.left:p-200;p=Math.min(400,p-t);this.ksearch_pane.css({left:(e?q.left:t)+"px",top:q.top+m.offsetHeight+1+"px",maxWidth:(e?g:p)+"px",minWidth:"200px",width:e?g+"px":"auto",display:"none"})}if(a&&(f=a.length))for(e=0;e<f&&0<l;e++)g="object"===typeof a[e]?a[e].display||a[e].name:a[e],t="object"===typeof a[e]?a[e].type:"",m=e+this.env.contacts.length,$("<li>").attr({id:"rcmkSearchItem"+m,role:"option"}).html('<i class="icon"></i>'+
this.quote_html(g.replace(new RegExp("("+RegExp.escape(k)+")","ig"),"##$1%%")).replace(/##([^%]+)%%/g,"<b>$1</b>")).addClass(t||"").appendTo(b).mouseover(function(){h.ksearch_select(this)}).mouseup(function(){h.ksearch_click(this)}).get(0)._rcm_id=m,--l;b.childNodes.length&&($(this.ksearch_input).attr({"aria-haspopup":"true","aria-expanded":"true","aria-owns":"rcmKSearchpane"}),this.ksearch_pane.show(),this.env.contacts.length||this.ksearch_select($("li",b)[0]));f&&(this.env.contacts=this.env.contacts.concat(a));
this.ksearch_data.id==d&&this.ksearch_data.num--}};this.ksearch_input_get=function(){if(!this.ksearch_input)return"";var a=this.get_caret_pos(this.ksearch_input);return this.ksearch_input.value.substr(0,a).split(/[,;]/).pop()};this.ksearch_input_replace=function(a,b,d){if(this.ksearch_input||d){d||(d=this.ksearch_input);var e=this.get_caret_pos(d),f=d.value.lastIndexOf(a,e),g=d.value.substring(0,f);f=d.value.substring(f+a.length,d.value.length);d.value=g+b+f;this.set_caret_pos(d,e+b.length-a.length);
$(d).trigger("change",[!0])}};this.ksearch_click=function(a){this.ksearch_input&&this.ksearch_input.focus();this.insert_recipient(a._rcm_id);this.ksearch_hide()};this.ksearch_blur=function(){this.ksearch_timer&&clearTimeout(this.ksearch_timer);this.ksearch_input=null;this.ksearch_hide()};this.ksearch_hide=function(){this.ksearch_selected=null;this.ksearch_value="";this.ksearch_pane&&this.ksearch_pane.hide();$(this.ksearch_input).attr({"aria-haspopup":"false","aria-expanded":"false"}).removeAttr("aria-activedescendant").removeAttr("aria-owns");
this.ksearch_destroy()};this.ksearch_destroy=function(){this.ksearch_data&&this.multi_thread_request_abort(this.ksearch_data.id);this.ksearch_info&&this.hide_message(this.ksearch_info);this.ksearch_msg&&this.hide_message(this.ksearch_msg);this.ksearch_msg=this.ksearch_info=this.ksearch_data=null};this.contactlist_select=function(a){this.preview_timer&&clearTimeout(this.preview_timer);var b,d=0,e=!1;var f=!1;var g=a.get_selection().length,k=this.env.source?this.env.address_sources[this.env.source]:
null;this.env.contentframe&&!a.multi_selecting&&(b=a.get_single_selection())?this.preview_timer=setTimeout(function(){h.load_contact(b,"show")},this.preview_delay_click):this.env.contentframe&&this.show_contentframe(!1);g&&(a.draggable=!1,this.env.selection_sources=[],k&&this.env.selection_sources.push(this.env.source),$.each(a.get_selection(),function(l,m){l=a.data[m];k?e=e||!k.readonly&&!l.readonly:(m=String(m).replace(/^[^-]+-/,""))&&h.env.address_sources[m]&&(e=e||!h.env.address_sources[m].readonly&&
!l.readonly,h.env.selection_sources.push(m));"group"!=l._type&&(a.draggable=!0)}),this.env.selection_sources=$.unique(this.env.selection_sources),k&&k.groups&&$.each(this.env.contactgroups,function(){this.source===h.env.source&&d++}),f=$.map(this.env.address_sources,function(l,m){return l.readonly?null:m}),f=0<$.grep(f,function(l){return 0>jQuery.inArray(l,h.env.selection_sources)}).length);this.enable_command("group-assign-selected",0<d&&e);this.enable_command("group-remove-selected",this.env.group&&
e);this.enable_command("print","qrcode",1==g);this.enable_command("export-selected",0<g);this.enable_command("edit",b&&e);this.enable_command("delete","move",e);this.enable_command("copy",f);return!1};this.list_contacts=function(a,b,d,e){var f,g=-1,k={},l=void 0===a&&void 0===b&&void 0===d,m=window;a||(a=this.env.source);l&&(b=this.env.group);a!=this.env.source?(d=this.env.current_page=1,this.reset_qsearch()):l||b==this.env.group||(d=this.env.current_page=1);this.env.search_id?f="S"+this.env.search_id:
this.env.search_request||(f=b?"G"+a+b:a);this.env.source=a;this.env.group=b;$.each(this.env.address_group_stack,function(q,p){if(h.env.group==p.id)return g=q,!1});this.env.address_group_stack=0>g?[]:this.env.address_group_stack.slice(0,g);this.destroy_entity_selector("contactgroup-selector");this.env.group?(e||(e={}),e.id=this.env.group,this.env.address_group_stack.push(e),f="G"+a+this.env.address_group_stack[0].id):this.gui_objects.addresslist_title&&$(this.gui_objects.addresslist_title).text(this.get_label("contacts"));
this.env.search_id||this.select_folder(f,"",!0);if(this.gui_objects.contactslist)this.list_contacts_remote(a,b,d);else{if(e=this.get_frame_window(this.env.contentframe))m=e,k._framed=1;b&&(k._gid=b);d&&(k._page=d);a&&(k._source=a);this.env.search_request&&(k._search=this.env.search_request);this.set_busy(!0,"loading");this.location_href(k,m)}};this.list_contacts_remote=function(a,b,d){this.list_contacts_clear();var e={},f=this.set_busy(!0,"loading");a&&(e._source=a);d&&(e._page=d);b&&(e._gid=b);this.env.source=
a;this.env.group=b;this.env.search_request&&(e._search=this.env.search_request);this.http_request("mail"==this.env.task?"list-contacts":"list",e,f);"mail"!=this.env.task&&this.update_state({_source:a,_page:d&&1<d?d:null,_gid:b})};this.list_contacts_clear=function(){this.contact_list.data={};this.contact_list.clear(!0);this.show_contentframe(!1);this.enable_command("delete","move","copy","print",!1)};this.set_group_prop=function(a){if(this.gui_objects.addresslist_title){var b=$(this.gui_objects.addresslist_title).html("");
if(1<this.env.address_group_stack.length||1==this.env.address_group_stack.length&&this.env.address_group_stack[0].search_request)$('<a href="#list">...</a>').attr("title",this.get_label("uponelevel")).addClass("poplink").appendTo(b).click(function(d){return h.command("popgroup","",this)}),b.append(" » ");b.append($("<span>").text(a?a.name:this.get_label("contacts")))}};this.load_contact=function(a,b,d){var e,f={},g=window,k=this.contact_list?this.contact_list.data[a]:null;if(e=this.get_frame_window(this.env.contentframe))f._framed=
1,g=e,this.show_contentframe(!0),a||this.contact_list.clear_selection(),this.enable_command("export-selected","print",k&&"group"!=k._type);else if(d)return!1;!b||!a&&"add"!=b||this.drag_active||(this.env.group&&(f._gid=this.env.group),this.env.search_request&&(f._search=this.env.search_request),a&&(f._cid=this.preview_id=a),f._action=b,f._source=this.env.source,this.location_href(f,g,!0));return!0};this.group_member_change=function(a,b,d,e){"add"!=a&&(a="del");var f=this.display_message("add"==a?
"addingmember":"removingmember","loading");this.http_post("group-"+a+"members",{_cid:b,_source:d,_gid:e},f)};this.contacts_drag_menu=function(a,b){var d="group"==b.type?b.source:b.id,e=this.env.source;if(!this.env.address_sources[d]||this.env.address_sources[d].readonly)return!0;""==e&&1==this.env.selection_sources.length&&(e=this.env.selection_sources[0]);return"group"==b.type&&d==e?(a=this.contact_list.get_selection().join(","),this.group_member_change("add",a,d,b.id),!0):this.commands.move||rcube_event.get_modifier(a)==
SHIFT_KEY?this.drag_menu(a,b):(this.copy_contacts(b),!0)};this.copy_contacts=function(a,b,d){if(!a)return d=this.contact_list.get_selection(),this.addressbook_selector(b,function(g,k){g=$(k).data("source")?h.env.contactgroups["G"+$(k).data("source")+$(k).data("gid")]:h.env.address_sources[g];h.copy_contacts(g,null,d)});b="group"==a.type?a.source:a.id;var e=this.env.source,f=this.env.group?this.env.group:"";(d=d?d.join(","):this.contact_list.get_selection().join(","))&&this.env.address_sources[b]&&
!this.env.address_sources[b].readonly&&(""==e&&1==this.env.selection_sources.length&&(e=this.env.selection_sources[0]),"group"==a.type?b!=e&&(e=this.display_message("copyingcontact","loading"),a={_cid:d,_source:this.env.source,_to:b,_togid:a.id,_gid:f},this.http_post("copy",a,e)):a.id!=e&&(e=this.display_message("copyingcontact","loading"),a={_cid:d,_source:this.env.source,_to:a.id,_gid:f},this.http_post("copy",a,e)))};this.move_contacts=function(a,b,d){if(!a)return d=this.contact_list.get_selection(),
this.addressbook_selector(b,function(f,g){f=$(g).data("source")?h.env.contactgroups["G"+$(g).data("source")+$(g).data("gid")]:h.env.address_sources[f];h.move_contacts(f,null,d)});b="group"==a.type?a.source:a.id;var e=this.env.source;this.env.address_sources[b]&&!this.env.address_sources[b].readonly&&(""==e&&1==this.env.selection_sources.length&&(e=this.env.selection_sources[0]),"group"==a.type?b!=e&&this._with_selected_contacts("move",{_to:b,_togid:a.id,_cid:d}):a.id!=e&&this._with_selected_contacts("move",
{_to:a.id,_cid:d}))};this.delete_contacts=function(){if(this.env.source&&this.env.address_sources[this.env.source].undelete)this._with_selected_contacts("delete",{_cid:this.contact_list.get_selection()});else{var a=this.contact_list.get_selection();this.confirm_dialog(this.get_label("deletecontactconfirm"),"delete",function(){h._with_selected_contacts("delete",{_cid:a})})}};this._with_selected_contacts=function(a,b){var d=b._cid;if(d.length||this.env.cid){var e,f=[],g=this.display_message("delete"==
a?"contactdeleting":"movingcontact","loading"),k=this.check_display_next();if(this.env.cid)f.push(this.env.cid);else{for(e=0;e<d.length;e++)id=d[e],f.push(id),this.contact_list.remove_row(id,k&&e==d.length-1);k||this.contact_list.clear_selection()}b||(b={});b._source=this.env.source;b._from=this.env.action;b._cid=f.join(",");this.env.group&&(b._gid=this.env.group);this.env.search_request&&(b._search=this.env.search_request);this.http_post(a,b,g);return!0}};this.update_contact_row=function(a,b,d,e,
f){var g=this.contact_list;a=this.html_identifier(a);g.rows[a]||(a=a+"-"+e,d&&(d=d+"-"+e));g.update_row(a,b,d,!0);g.data[a]=f};this.add_contact_row=function(a,b,d,e){if(!this.gui_objects.contactslist)return!1;var f,g=this.contact_list,k={cols:[]};k.id="rcmrow"+this.html_identifier(a);k.className="contact "+(d||"");g.in_selection(a)&&(k.className+=" selected");for(f in b)d={},d.className=String(f).toLowerCase(),d.innerHTML=b[f],k.cols.push(d);g.data[a]=e;g.insert_row(k);this.enable_command("export",
0<g.rowcount)};this.init_contact_form=function(){var a;if(this.env.coltypes)for(a in this.set_photo_actions($("#ff_photo").val()),this.env.coltypes)this.init_edit_field(a,null);$(".contactfieldgroup .row a.deletebutton").click(function(){h.delete_edit_field(this);return!1});$("select.addfieldmenu").change(function(){h.insert_edit_field($(this).val(),$(this).attr("rel"),this);this.selectedIndex=0});$.datepicker&&this.env.date_format&&($.datepicker.setDefaults({dateFormat:this.env.date_format,changeMonth:!0,
changeYear:!0,yearRange:"-120:+10",showOtherMonths:!0,selectOtherMonths:!0}),$("input.datepicker").datepicker());"search"==this.env.action&&$(this.gui_objects.editform).append($('<input type="submit">').hide()).submit(function(){$("input.mainaction").click();return!1})};this.group_create=function(){var a=$("<input>").attr("type","text"),b=$("<label>").text(this.get_label("namex")).append(a),d=this.env.source;this.simple_dialog(b,"newgroup",function(){var e;if(e=a.val())return h.http_post("group-create",
{_source:d,_name:e},h.set_busy(!0,"loading")),!0})};this.group_rename=function(){if(this.env.group){var a=this.env.contactgroups["G"+this.env.source+this.env.group].name,b=$("<input>").attr("type","text").val(a),d=$("<label>").text(this.get_label("namex")).append(b),e=this.env.source,f=this.env.group;this.simple_dialog(d,"grouprename",function(){var g;if((g=b.val())&&g!=a)return h.http_post("group-rename",{_source:e,_gid:f,_name:g},h.set_busy(!0,"loading")),!0})}};this.group_delete=function(){if(this.env.group){var a=
this.env.group;this.confirm_dialog(this.get_label("deletegroupconfirm"),"delete",function(){var b=h.set_busy(!0,"groupdeleting");h.http_post("group-delete",{_source:h.env.source,_gid:a},b)})}};this.remove_group_item=function(a){var b="G"+a.source+a.id;this.treelist.remove(b)&&(this.destroy_entity_selector("addressbook-selector"),this.destroy_entity_selector("contactgroup-selector"),this.triggerEvent("group_delete",{source:a.source,id:a.id}),delete this.env.contactfolders[b],delete this.env.contactgroups[b]);
a.source==this.env.source&&a.id==this.env.group&&this.list_contacts(a.source,0)};this.group_assign_selected=function(a,b,d){var e=h.contact_list.get_selection(),f=h.env.source;this.contactgroup_selector(d,function(g){h.group_member_change("add",e,f,g)})};this.group_remove_selected=function(){this.http_post("group-delmembers",{_cid:this.contact_list.get_selection(),_source:this.env.source,_gid:this.env.group})};this.remove_group_contacts=function(a){if(void 0!==this.env.group&&this.env.group===a.gid){var b=
this.contact_list.get_selection(),d=this.check_display_next();for(a=0;a<b.length;a++)id=b[a],this.contact_list.remove_row(id,d&&a==b.length-1);d||this.contact_list.clear_selection()}};this.insert_contact_group=function(a){a.type="group";var b="G"+a.source+a.id,d=$("<a>").attr({href:"#",rel:a.source+":"+a.id}).click(function(){return h.command("listgroup",a,this)}).text(a.name);this.env.contactfolders[b]=this.env.contactgroups[b]=a;this.treelist.insert({id:b,html:d,classes:["contactgroup"]},a.source,
"contactgroup");this.destroy_entity_selector("addressbook-selector");this.destroy_entity_selector("contactgroup-selector");this.triggerEvent("group_insert",{id:a.id,source:a.source,name:a.name,li:this.treelist.get_item(b)})};this.update_contact_group=function(a){var b="G"+a.source+a.id,d={};if(a.newid){var e="G"+a.source+a.newid,f=$.extend({},a);this.env.contactfolders[e]=this.env.contactfolders[b];this.env.contactfolders[e].id=a.newid;this.env.group=a.newid;delete this.env.contactfolders[b];delete this.env.contactgroups[b];
f.id=a.newid;f.type="group";d.id=e;d.html=$("<a>").attr({href:"#",rel:a.source+":"+a.newid}).click(function(){return h.command("listgroup",f,this)}).text(a.name)}else $(this.treelist.get_item(b)).children().first().text(a.name),this.env.contactfolders[b].name=this.env.contactgroups[b].name=a.name,a.source==this.env.source&&a.id==this.env.group&&this.set_group_prop(a);this.treelist.update(b,d,!0);this.destroy_entity_selector("addressbook-selector");this.destroy_entity_selector("contactgroup-selector");
this.triggerEvent("group_update",{id:a.id,source:a.source,name:a.name,li:this.treelist.get_item(b),newid:a.newid})};this.update_group_commands=function(){var a=""!=this.env.source?this.env.address_sources[this.env.source]:null;a=a&&a.groups&&!a.readonly;this.enable_command("group-create",a);this.enable_command("group-rename","group-delete",a&&this.env.group)};this.init_edit_field=function(a,b){var d=this.env.coltypes[a].label;b||(b=$(".ff_"+a));d&&!$('label[for="ff_'+a+'"]').length&&b.placeholder(d)};
this.insert_edit_field=function(a,b,d){var e=$("#ff_"+a);if(e.length)$('label[for="ff_'+a+'"]').parent().show(),e.show().focus(),$(d).children('option[value="'+a+'"]').prop("disabled",!0);else{$(".ff_"+a);e=$("#contactsection"+b+" .contactcontroller"+a);if(!e.length){b=$("#contactsection"+b);var f=$(".contactfieldgroup",b).last();e=$("<fieldset>").addClass("contactfieldgroup contactcontroller"+a);f.length?e.insertAfter(f):b.prepend(e)}if("FIELDSET"==e.get(0).nodeName){f=this.env.coltypes[a];var g=
1!=f.limit?"[]":"",k=$(d).data("compact")?!0:!1,l="ff_"+a+(f.count||0),m=$("<div>").addClass("row input-group"),q=$("<div>").addClass("contactfieldcontent "+f.type);f.subtypes_select?(b=$(f.subtypes_select),k?b.addClass("input-group-prepend"):b=$("<div>").addClass("contactfieldlabel label").append(b)):(b=$("<label>").addClass("contactfieldlabel label input-group-text").attr("for",l).text(f.label),k&&(b=$('<span class="input-group-prepend">').append(b)));if("text"==f.type||"date"==f.type){var p=$("<input>").addClass("form-control ff_"+
a).attr({type:"text",name:"_"+a+g,size:f.size,id:l});this.init_edit_field(a,p);"date"==f.type&&$.datepicker&&p.addClass("datepicker").datepicker()}else if("textarea"==f.type)p=$("<textarea>").addClass("form-control ff_"+a).attr({name:"_"+a+g,cols:f.size,rows:f.rows,id:l}),this.init_edit_field(a,p);else if("composite"==f.type){var t,v=[],w=[],x=q;m.addClass("composite");k&&(x=$('<div class="content input-group-text">'));if(p=this.env[a+"_template"])for(l=0;l<p.length;l++)v.push(p[l][1]),w.push(p[l][2]);
else for(u in f.childs)v.push(u);for(l=0;l<v.length;l++){var u=v[l];p=f.childs[u];p=$("<input>").addClass("form-control ff_"+u).attr({type:"text",name:"_"+u+g,size:p.size}).appendTo(x);k||x.append(w[l]||" ");this.init_edit_field(u,p);t||(t=p)}p=k?x:t}else if("select"==f.type){p=$("<select>").addClass("custom-select ff_"+a).attr({name:"_"+a+g,id:l});var A=p.attr("options");A[A.length]=new Option("---","");f.options&&$.each(f.options,function(B,z){A[A.length]=new Option(z,B)})}p&&(u=$('<a href="#del"></a>').addClass("contactfieldbutton deletebutton input-group-text icon delete").attr({title:this.get_label("delete"),
rel:a}).html(this.env.delbutton).click(function(){h.delete_edit_field(this);return!1}),m.append(b),k?(m.append(p).append(u),u.wrap('<span class="input-group-append">')):("composite"!=f.type&&q.append(p),m.append(q.append(u))),m.appendTo(e.show()),p.is("div")?p.find("input").first().focus():p.first().focus(),f.count||(f.count=0),++f.count==f.limit&&f.limit&&$(d).children('option[value="'+a+'"]').prop("disabled",!0),this.triggerEvent("insert-edit-field",p))}}};this.delete_edit_field=function(a){var b=
$(a).attr("rel"),d=this.env.coltypes[b],e=$(a).parents("div.row"),f=$(a).parents("fieldset.contactfieldgroup");a=f.parent().find("select.addfieldmenu");0>=--d.count&&d.visible?e.find("input").val("").blur():(e.remove(),f.children("div.row").length||f.hide());a.length&&(e=a.children('option[value="'+b+'"]'),e.length?e.prop("disabled",!1):$("<option>").attr("value",b).html(d.label).appendTo(a),a.show())};this.upload_contact_photo=function(a){a&&a.elements._photo.value&&(this.async_upload_form(a,"upload-photo",
function(b){h.set_busy(!1,null,h.file_upload_id)}),this.file_upload_id=this.set_busy(!0,"uploading"))};this.replace_contact_photo=function(a){var b="-del-"==a?this.env.photo_placeholder:this.env.comm_path+"&_action=photo&_source="+this.env.source+"&_cid="+(this.env.cid||0)+"&_photo="+a;this.set_photo_actions(a);$(this.gui_objects.contactphoto).children("img").attr("src",b)};this.photo_upload_end=function(){this.set_busy(!1,null,this.file_upload_id);delete this.file_upload_id};this.set_photo_actions=
function(a){var b,d=this.buttons["upload-photo"];for(b=0;d&&b<d.length;b++)$("a#"+d[b].id).html(this.get_label("-del-"==a?"addphoto":"replacephoto"));$("#ff_photo").val(a);this.enable_command("upload-photo",this.env.coltypes.photo?!0:!1);this.enable_command("delete-photo",this.env.coltypes.photo&&"-del-"!=a)};this.advanced_search=function(){var a=$("<iframe>").attr("src",this.url("search",{_form:1,_framed:1}));this.simple_dialog(a,this.gettext("advsearch"),function(){var b=!1,d={_adv:1};$.each($(a[0].contentWindow.rcmail.gui_objects.editform).serializeArray(),
function(){this.name.match(/^_search/)&&""!=this.value&&(d[this.name]=this.value,b=!0)});if(b)return h.http_post("search",d,h.set_busy(!0,"searching")),!0},{button:"search",width:600,height:500});return!0};this.unselect_directory=function(){this.select_folder("");this.enable_command("search-delete",!1)};this.insert_saved_search=function(a,b){var d="S"+b,e=$("<a>").attr({href:"#",rel:b}).click(function(){return h.command("listsearch",b,this)}).html(a);a={name:a,id:b};this.savedsearchlist.insert({id:d,
html:e,classes:["contactsearch"]},null,"contactsearch");this.select_folder(d,"",!0);this.enable_command("search-delete",!0);this.env.search_id=b;this.triggerEvent("abook_search_insert",a)};this.search_create=function(){var a=$("<input>").attr("type","text"),b=$("<label>").text(this.get_label("namex")).append(a);this.simple_dialog(b,"searchsave",function(){var d;if(d=a.val())return h.http_post("search-create",{_search:h.env.search_request,_name:d},h.set_busy(!0,"loading")),!0})};this.search_delete=
function(){if(this.env.search_request){var a=this.set_busy(!0,"savedsearchdeleting");this.http_post("search-delete",{_sid:this.env.search_id},a)}};this.remove_search_item=function(a){this.savedsearchlist.remove("S"+a)&&this.triggerEvent("search_delete",{id:a});this.env.search_id=null;this.env.search_request=null;this.list_contacts_clear();this.reset_qsearch();this.enable_command("search-delete","search-create",!1)};this.listsearch=function(a){var b=this.set_busy(!0,"searching");this.contact_list&&
this.list_contacts_clear();this.reset_qsearch();this.savedsearchlist?(this.treelist.select(""),this.savedsearchlist.select("S"+a)):this.select_folder("S"+a,"",!0);this.env.current_page=1;this.http_request("search",{_sid:a},b)};this.qrcode=function(){var a=this.get_label("qrcode"),b=new Image(300,300);b.src=this.url("addressbook/qrcode",{_source:this.env.source,_cid:this.get_single_cid()});return this.simple_dialog(b,a,null,{button:!1,cancel_button:"close",width:300,height:300})};this.section_select=
function(a){var b;(a=a.get_single_selection())&&(b=this.get_frame_window(this.env.contentframe))&&this.location_href({_action:"edit-prefs",_section:a,_framed:1},b,!0)};this.response_select=function(a){a=a.get_single_selection();this.enable_command("delete",!!a&&0>$.inArray(a,this.env.readonly_responses));a&&this.load_response(a,"edit-response")};this.load_response=function(a,b){var d;if(d=this.get_frame_window(this.env.contentframe))if(a||"add-response"==b)a||this.responses_list.clear_selection(),
this.location_href({_action:b,_key:a,_framed:1},d,!0)};this.identity_select=function(a){var b=a.get_single_selection();this.enable_command("delete",!!b&&1<a.rowcount&&2>this.env.identities_level);b&&this.load_identity(b,"edit-identity")};this.load_identity=function(a,b){var d;if(d=this.get_frame_window(this.env.contentframe))if(a||"add-identity"==b)a||this.identity_list.clear_selection(),this.location_href({_action:b,_iid:a,_framed:1},d,!0)};this.delete_identity=function(a){var b=this.identity_list.get_selection();
if(b.length||this.env.iid)a||(a=this.env.iid?this.env.iid:b[0]),a&&this.confirm_dialog(this.get_label("deleteidentityconfirm"),"delete",function(){h.http_post("settings/delete-identity",{_iid:a},!0)})};this.update_identity_row=function(a,b,d){var e=this.identity_list;a=this.html_identifier(a);d?(e.insert_row({id:"rcmrow"+a,cols:[{className:"mail",innerHTML:b}]}),e.select(a)):e.update_row(a,[b])};this.update_response_row=function(a,b){var d=this.responses_list;d&&b?d.update_row(b,[a.name],a.key,!0):
d&&(d.insert_row({id:"rcmrow"+a.key,cols:[{className:"name",innerHTML:a.name}]}),d.select(a.key))};this.remove_response=function(a){this.env.textresponses&&delete this.env.textresponses[a];this.responses_list&&(this.responses_list.remove_row(a),this.show_contentframe(!1));this.enable_command("delete",!1)};this.remove_identity=function(a){var b=this.identity_list,d=this.html_identifier(a);b&&a&&(b.remove_row(d),this.show_contentframe(!1));this.enable_command("delete",!1)};this.init_subscription_list=
function(){var a=RegExp.escape(this.env.delimiter);this.last_sub_rx=RegExp("["+a+"]?[^"+a+"]+$");this.subscription_list=new rcube_treelist_widget(this.gui_objects.subscriptionlist,{selectable:!0,tabexit:!1,parent_focus:!0,id_prefix:"rcmli",id_encode:this.html_identifier_encode,id_decode:this.html_identifier_decode,searchbox:"#foldersearch"});this.subscription_list.addEventListener("select",function(b){h.subscription_select(b.id)}).addEventListener("collapse",function(b){h.folder_collapsed(b)}).addEventListener("expand",
function(b){h.folder_collapsed(b)}).addEventListener("search",function(b){b.query&&h.subscription_select()}).draggable({cancel:"li.mailbox.root,input,div.treetoggle,.custom-control"}).droppable({accept:function(b){if(!b.is(".mailbox"))return!1;b=h.folder_id2name(b.attr("id"));var d=h.folder_id2name(this.id),e=h.env.subscriptionrows[b];return e&&!e[2]&&d!=b.replace(h.last_sub_rx,"")&&!d.startsWith(b+h.env.delimiter)},drop:function(b,d){b=h.folder_id2name(d.draggable.attr("id"));d=h.folder_id2name(this.id);
h.subscription_move_folder(b,d)}})};this.folder_id2name=function(a){return a?h.html_identifier_decode(a.replace(/^rcmli/,"")):null};this.subscription_select=function(a){var b;a&&"*"!=a&&(b=this.env.subscriptionrows[a])?(this.env.mailbox=a,this.show_folder(a),this.enable_command("delete-folder",!b[2])):(this.env.mailbox=null,this.show_contentframe(!1),this.enable_command("delete-folder","purge",!1))};this.subscription_move_folder=function(a,b){if(a&&null!==b&&a!=b&&b!=a.replace(this.last_sub_rx,"")){var d=
a.split(this.env.delimiter).pop(),e=""===b||"*"===b?d:b+this.env.delimiter+d;e!=a&&this.confirm_dialog(this.get_label("movefolderconfirm"),"move",function(){h.http_post("rename-folder",{_folder_oldname:a,_folder_newname:e},h.set_busy(!0,"foldermoving"))},{button_class:"save move"})}};this.create_folder=function(){this.show_folder("",this.env.mailbox)};this.delete_folder=function(a){a||(a=this.env.mailbox);a&&this.confirm_dialog(this.get_label("deletefolderconfirm"),"delete",function(){h.http_post("delete-folder",
{_mbox:a},h.set_busy(!0,"folderdeleting"))})};this.add_folder_row=function(a,b,d,e,f,g,k,l){if(!this.gui_objects.subscriptionlist)return!1;this.subscription_list.is_search()&&(this.subscription_select(),this.subscription_list.reset_search());this.subscription_list.is_draggable()&&this.subscription_list.draggable("destroy").droppable("destroy");var m,q,p="",t=[],v=[],w=[],x=$(this.gui_objects.subscriptionlist);var u=k?k:$($("li",x).get(1)).clone(!0);if(!u.length)return this.goto_url("folders"),!1;
u.attr({id:"rcmli"+this.html_identifier_encode(a),"class":g});k&&k.length||($("ul,div.treetoggle",u).remove(),u.removeData("filtered"));$("a",u).first().text(d).removeAttr("title");$('input[name="_subscribed[]"]',u).first().val(a).prop({checked:f?!0:!1,disabled:e?!0:!1});this.env.subscriptionrows[a]=[b,d,!1];$.each(this.env.subscriptionrows,function(z,y){y[3]=z;t.push(y)});try{var A=new Intl.Collator(this.env.locale.replace("_","-"))}catch(z){}t.sort(function(z,y){z=z[0].split(h.env.delimiter);var F=
y[0].split(h.env.delimiter),E=z.length;for(y=0;y<E;y++){var D=z[y];var C=F[y];if(D!==C)return void 0===C?1:A?A.compare(D,C):D<C?-1:1;if(y==E-1)return-1}});for(m in t)if(d=t[m][3],t[m][2]){if(b=d+this.env.delimiter,b!=this.env.prefix_ns){w.push(d);var B=b}}else B&&d.startsWith(B)?w.push(d):(v.push(d),B=null);for(m=0;m<w.length;m++)a.startsWith(w[m]+this.env.delimiter)&&(q=w[m]);for(m=0;!q&&m<v.length;m++)m&&v[m]==a&&(q=v[m-1]);if(q&&(m=this.subscription_list.get_item(q,!0))){if(B=a.lastIndexOf(this.env.delimiter))p=
a.substring(0,B),p=this.subscription_list.get_item(p,!0),$("div.treetoggle",p).length||$("<div> </div>").addClass("treetoggle collapsed").appendTo(p),$("ul",p).length||$("<ul>").css("display","none").appendTo(p);if(p&&m==p)$("ul",p).first().append(u);else{for(;(d=$(m).parent().parent().get(0))&&(!p||d!=p)&&$(d).is("li.mailbox");)m=d;$(m).after(u)}}else x.append(u);$.extend(this.env.subscriptionrows,l||{});this.subscription_list.reset(!0);this.subscription_select();p&&this.subscription_list.expand(this.folder_id2name(p.id));
u=u.show().get(0);u.scrollIntoView&&u.scrollIntoView(!1);k||this.triggerEvent("clonerow",{row:u,id:a});return u};this.replace_folder_row=function(a,b,d,e,f,g){if(!this.gui_objects.subscriptionlist)return this.is_framed()?window.parent.rcmail.replace_folder_row(a,b,d,e,f,g):!1;this.subscription_list.is_search()&&(this.subscription_select(),this.subscription_list.reset_search());var k={},l=this.subscription_list.get_item(a,!0),m=$(l).parent(),q=a.length,p=this.env.subscriptionrows[a][0].length,t=$('input[name="_subscribed[]"]',
l).first().prop("checked");a==b?$(l).attr("class",g||""):($("li",l).each(function(){var v=h.folder_id2name(this.id),w=h.env.subscriptionrows[v],x=b+v.slice(q);this.id="rcmli"+h.html_identifier_encode(x);$('input[name="_subscribed[]"]',this).first().val(x);w[0]=d+w[0].slice(p);k[x]=w;delete h.env.subscriptionrows[v]}),l=$(l).detach(),delete this.env.subscriptionrows[a],m.get(0)==this.gui_objects.subscriptionlist||$("li",m).length||$("ul,div.treetoggle",m.parent()).remove(),this.add_folder_row(b,d,
e,f,t,g,l,k))};this.remove_folder_row=function(a){this.subscription_list.is_search()&&(this.subscription_select(),this.subscription_list.reset_search());var b=[],d=this.subscription_list.get_item(a,!0);$("li",d).each(function(){b.push(h.folder_id2name(this.id))});this.subscription_list.remove(a);b.push(a);$.each(b,function(e,f){delete h.env.subscriptionrows[f]})};this.subscribe=function(a){this.change_subscription_state(a,!0)};this.unsubscribe=function(a){this.change_subscription_state(a,!1)};this.change_subscription_state=
function(a,b){if(a){var d=b?"":"un",e=this.display_message("folder"+d+"subscribing","loading");this.http_post(d+"subscribe",{_mbox:a},e);$(this.gui_objects.subscriptionlist).find('input[value="'+a+'"]').prop("checked",b)}};this.show_folder=function(a,b,d){var e=window;a="&_action="+(""===a?"add":"edit")+"-folder&_mbox="+urlencode(a);b&&(a+="&_path="+urlencode(b));if(b=this.get_frame_window(this.env.contentframe))e=b,a+="&_framed=1";0<=String(e.location.href).indexOf(a)&&!d?this.show_contentframe(!0):
this.location_href(this.env.comm_path+a,e,!0)};this.disable_subscription=function(a){(a=this.subscription_list.get_item(a,!0))&&$('input[name="_subscribed[]"]',a).first().prop("disabled",!0)};this.reset_subscription=function(a,b){(a=this.subscription_list.get_item(a,!0))&&$('input[name="_subscribed[]"]',a).first().prop("checked",b)};this.folder_size=function(a){var b=this.set_busy(!0,"loading");this.http_post("folder-size",{_mbox:a},b)};this.folder_size_update=function(a){$("#folder-size").replaceWith(a)};
this.folder_filter=function(a){this.subscription_list.reset_search();this.subscription_list.container.children("li").each(function(){var b,d=h.folder_id2name(this.id);if("---"!=a)if(a){if(d!==a){$(this).data("filtered",!0).hide();return}}else for(b in h.env.ns_roots)if(d===h.env.ns_roots[b]){$(this).data("filtered",!0).hide();return}$(this).removeData("filtered").show()})};this.init_button=function(a,b){var d=document.getElementById(b.id);if(d){var e=!1;"image"==b.type&&(d=d.parentNode,e=!0);d._command=
a;d._id=b.id;b.sel&&(d.onmousedown=function(f){return h.button_sel(this._command,this._id)},d.onmouseup=function(f){return h.button_out(this._command,this._id)},e&&((new Image).src=b.sel));b.over&&(d.onmouseover=function(f){return h.button_over(this._command,this._id)},d.onmouseout=function(f){return h.button_out(this._command,this._id)},e&&((new Image).src=b.over))}};this.init_buttons=function(){for(var a in this.buttons)if("string"===typeof a)for(var b=0;b<this.buttons[a].length;b++)this.init_button(a,
this.buttons[a][b])};this.set_button=function(a,b){var d,e=this.buttons[a],f=e?e.length:0;for(a=0;a<f;a++){var g=e[a];(d=document.getElementById(g.id))&&g.status!==b&&("image"!=g.type||g.status?g.status||(g.pas=String(d.className)):(g.pas=d._original_src?d._original_src:d.src,d.runtimeStyle&&d.runtimeStyle.filter&&d.runtimeStyle.filter.match(/src=['"]([^'"]+)['"]/)&&(g.pas=RegExp.$1)),g.status=b,"image"==g.type&&g[b]?d.src=g[b]:void 0!==g[b]&&(d.className=g[b]),"input"==g.type||"button"==g.type?d.disabled=
"pas"==b:$(d).attr({tabindex:"pas"==b||"sel"==b?"-1":$(d).attr("data-tabindex")||"0","aria-disabled":"pas"==b||"sel"==b?"true":"false"}))}};this.set_alttext=function(a,b){var d,e=this.buttons[a],f=e?e.length:0;for(a=0;a<f;a++){var g=e[a];var k=document.getElementById(g.id);b=this.get_label(b);k&&"image"==g.type?(k.setAttribute("alt",b),(d=k.parentNode)&&"a"==d.tagName.toLowerCase()&&d.setAttribute("title",b)):k&&k.setAttribute("title",b)}};this.button_over=function(a,b){this.button_event(a,b,"over")};
this.button_sel=function(a,b){this.button_event(a,b,"sel")};this.button_out=function(a,b){this.button_event(a,b,"act")};this.button_event=function(a,b,d){var e,f,g=this.buttons[a],k=g?g.length:0;for(e=0;e<k;e++){var l=g[e];l.id==b&&"act"==l.status&&(l[d]&&(f=document.getElementById(l.id))&&(f["image"==l.type?"src":"className"]=l[d]),"sel"==d&&(this.buttons_sel[b]=a))}};this.set_pagetitle=function(a){a&&document.title&&(document.title=a)};this.display_message=function(a,b,d,e){a&&a.length&&/^[a-z._]+$/.test(a)&&
(a=this.get_label(a));if(this.is_framed())return parent.rcmail.display_message(a,b,d);if(!this.gui_objects.message)return"loading"!=b&&(this.pending_message=[a,b,d,e]),1;b?"loading"==b&&(e||(e="loading"),d||(d=1E3*this.env.request_timeout),a||(a=this.get_label("loading"))):b="notice";e||(e=this.html_identifier(a));var f=b+(new Date).getTime();if(!d)switch(b){case "error":case "warning":d=2*this.message_time;break;case "uploading":d=0;break;default:d=this.message_time}if(this.messages[e])return this.messages[e].obj&&
$("div.content",this.messages[e].obj).html(a),"loading"==b&&this.messages[e].labels.push({id:f,msg:a}),this.messages[e].elements.push(f),setTimeout(function(){h.hide_message(f,"loading"==b)},d),f;var g=$("<div>").addClass(b+" content").html(a).data("key",e);$(this.gui_objects.message).append(g).show();this.messages[e]={obj:g,elements:[f]};"loading"==b?this.messages[e].labels=[{id:f,msg:a}]:"uploading"!=b&&g.click(function(){return h.hide_message(g)}).attr("role","alert");this.triggerEvent("message",
{message:a,type:b,timeout:d,object:g});0<d&&setTimeout(function(){h.hide_message(f,"loading"!=b)},d);return f};this.hide_message=function(a,b){if(this.is_framed())return parent.rcmail.hide_message(a,b);if(this.gui_objects.message){var d,e,f=this.messages;if("object"===typeof a){var g=$(a);var k=g.data("key");this.hide_message_object(g,b);f[k]&&delete f[k]}else for(k in f)for(d in f[k].elements)if(f[k]&&f[k].elements[d]==a)if(f[k].elements.splice(d,1),!f[k].elements.length)this.hide_message_object(f[k].obj,
b),delete f[k];else if("loading"==k)for(e in f[k].labels)f[k].labels[e].id==a?delete f[k].labels[e]:(g=f[k].labels[e].msg,$("div.content",f[k].obj).html(g))}};this.hide_message_object=function(a,b){b?a.fadeOut(600,function(){$(this).remove()}):a.hide().remove()};this.clear_messages=function(){if(this.is_framed())return parent.rcmail.clear_messages();var a,b,d=this.messages;for(a in d)for(b in d[a].elements)d[a].obj&&this.hide_message_object(d[a].obj);this.messages={}};this.display_progress=function(a){if(a&&
a.name){var b=this.messages["progress"+a.name];a.label||(a.label=this.get_label("uploadingmany"));b?!a.total||100<=a.percent?this.hide_message(b.obj):(a.text&&(a.label+=" "+a.text),b.obj.text(a.label)):(!a.percent||100>a.percent)&&this.display_message(a.label,"uploading",0,"progress"+a.name)}};this.show_popup_dialog=function(a,b,d,e){if(this.is_framed())return parent.rcmail.show_popup_dialog(a,b,d,e);var f=$('<div class="popup">');"object"==typeof a?(f.append(a),$(a).is("iframe")&&f.addClass("iframe")):
f.html(a);var g=0;e&&e.button_classes&&$.each(d,function(v,w){var x=e.button_classes[g];x&&("function"==typeof w?w={click:w,text:v,"class":x}:d["class"]=x,d[v]=w);g++});e=$.extend({title:b,buttons:d,modal:!0,resizable:!0,width:500,close:function(v,w){$(this).remove()}},e||{});f.dialog(e);e.width&&f.width(e.width);e.height&&f.height(e.height);b=$(window);a=b.width();b=b.height();var k=f.width(),l=e.height||f[0].scrollHeight+20,m=f.parent(),q=$(".ui-dialog-titlebar",m).outerHeight()||0,p=$(".ui-dialog-buttonpane",
m).outerHeight()||0,t=2*(parseInt(m.css("padding-top"))+parseInt(f.css("padding-top")));f.dialog("option",{height:Math.min(b-40,l+q+p+t+2),width:Math.min(a-20,k+24)});m.on("keydown keyup",function(v){v.stopPropagation()});this.triggerEvent("dialog-open",{obj:f});return f};this.simple_dialog=function(a,b,d,e){e||(e={});b=this.get_label(b);var f=e.button||"save",g=e.button_class||f.replace(/^[^\.]+\./i,""),k=e.cancel_button||"cancel",l=e.cancel_class||k.replace(/^[^\.]+\./i,""),m=function(q,p,t){(h.is_framed()?
parent.$:$)(t||this).dialog("close");e.cancel_func&&e.cancel_func(q,h)};k=[{text:this.get_label(k),"class":l.replace(/close/i,"cancel"),click:m}];d?k.unshift({text:this.get_label(f),"class":"mainaction "+g,click:function(q,p){d(q,h)&&m(q,p,this)}}):k[0]["class"]+=" mainaction";return this.show_popup_dialog(a,b,k,e)};this.alert_dialog=function(a,b,d){d=$.extend(d||{},{cancel_button:"ok",cancel_class:"save",cancel_func:b});return this.simple_dialog(a,d.title||"alerttitle",null,d)};this.confirm_dialog=
function(a,b,d,e){e=$.extend(e||{},{button:b||"continue"});return this.simple_dialog(a,e.title||"confirmationtitle",function(f,g){d(f,g);return!0},e)};this.set_page_buttons=function(){this.enable_command("nextpage","lastpage",this.env.pagecount>this.env.current_page);this.enable_command("previouspage","firstpage",1<this.env.current_page);this.update_pagejumper()};this.select_folder=function(a,b,d){this.savedsearchlist&&this.savedsearchlist.select("");this.treelist?this.treelist.select(a):this.gui_objects.folderlist&&
($("li.selected",this.gui_objects.folderlist).removeClass("selected"),$(this.get_folder_li(a,b,d)).addClass("selected"),this.triggerEvent("selectfolder",{folder:a,prefix:b}))};this.mark_folder=function(a,b,d,e){$(this.get_folder_li(a,d,e)).addClass(b);this.triggerEvent("markfolder",{folder:a,mark:b,status:!0})};this.unmark_folder=function(a,b,d,e){$(this.get_folder_li(a,d,e)).removeClass(b);this.triggerEvent("markfolder",{folder:a,mark:b,status:!1})};this.get_folder_li=function(a,b,d){b||(b="rcmli");
if(this.gui_objects.folderlist)return a=this.html_identifier(a,d),document.getElementById(b+a)};this.set_message_coltypes=function(a,b,d){var e=this.message_list,f=e?e.thead:null;this.env.listcols=a;this.env.coltypes||(this.env.coltypes={});if(f){if(b){f.innerHTML="";var g=document.createElement("tr");c=0;for(a=b.length;c<a;c++){var k=document.createElement("th");k.innerHTML=b[c].html||"";b[c].id&&(k.id=b[c].id);b[c].className&&(k.className=b[c].className);g.appendChild(k)}f.appendChild(g)}g=0;for(a=
this.env.listcols.length;g<a;g++)b=this.env.listcols[g],!(k=f.rows[0].cells[g])||"from"!=b&&"to"!=b&&"fromto"!=b||$(k).attr("rel",b).find("span,a").text(this.get_label("fromto"==b?d:b))}this.env.subject_col=null;this.env.flagged_col=null;this.env.status_col=null;this.env.coltypes.folder&&(this.env.coltypes.folder.hidden=!(this.env.search_request||this.env.search_id)||"base"==this.env.search_scope);0<=(g=$.inArray("subject",this.env.listcols))&&(this.env.subject_col=g,e&&(e.subject_col=g));0<=(g=$.inArray("flag",
this.env.listcols))&&(this.env.flagged_col=g);0<=(g=$.inArray("status",this.env.listcols))&&(this.env.status_col=g);e&&(e.hide_column("folder",this.env.coltypes.folder&&this.env.coltypes.folder.hidden||0>$.inArray("folder",this.env.listcols)),e.init_header())};this.set_rowcount=function(a,b){if(b&&b!=this.env.mailbox)return!1;$(this.gui_objects.countdisplay).html(a);this.set_page_buttons()};this.set_mailboxname=function(a){this.gui_objects.mailboxname&&a&&(this.gui_objects.mailboxname.innerHTML=a)};
this.set_quota=function(a){this.gui_objects.quotadisplay&&a&&"text"==a.type&&$(this.gui_objects.quotadisplay).text((a.percent||0)+"%").attr("title",a.title||"");this.triggerEvent("setquota",a);this.env.quota_content=a};this.set_trash_count=function(a){this[(a?"un":"")+"mark_folder"](this.env.trash_mailbox,"empty","",!0)};this.set_unread_count=function(a,b,d,e){if(!this.gui_objects.mailboxlist)return!1;this.env.unread_counts[a]=b;this.set_unread_count_display(a,d);e?this.mark_folder(a,e,"",!0):b||
this.unmark_folder(a,"recent","",!0);this.mark_all_read_state()};this.set_unread_count_display=function(a,b){var d,e;if(d=this.get_folder_li(a,"",!0)){var f=this.env.unread_counts[a]?this.env.unread_counts[a]:0;var g=$(d).children("a").eq(0);var k=g.children("span.unreadcount");!k.length&&f&&(k=$("<span>").addClass("unreadcount skip-content").appendTo(g));g=0;if((e=d.getElementsByTagName("div")[0])&&e.className.match(/collapsed/))for(var l in this.env.unread_counts)l.startsWith(a+this.env.delimiter)&&
(g+=this.env.unread_counts[l]);f&&k.length?k.html(this.env.unreadwrap.replace(/%[sd]/,f)):k.length&&k.remove();k=new RegExp(RegExp.escape(this.env.delimiter)+"[^"+RegExp.escape(this.env.delimiter)+"]+$");a.match(k)&&this.set_unread_count_display(a.replace(k,""),!1);0<f+g?$(d).addClass("unread"):$(d).removeClass("unread")}k=/^\([0-9]+\)\s+/i;b&&document.title&&(a=String(document.title),f=f&&a.match(k)?a.replace(k,"("+f+") "):f?"("+f+") "+a:a.replace(k,""),this.set_pagetitle(f))};this.set_headers=function(a){this.gui_objects.all_headers_box&&
a&&$(this.gui_objects.all_headers_box).html(a).show()};this.show_headers=function(a,b){this.gui_objects.all_headers_row&&this.gui_objects.all_headers_box&&this.env.uid&&($(b).removeClass("show-headers").addClass("hide-headers"),$(this.gui_objects.all_headers_row).show(),b.onclick=function(){h.command("hide-headers","",b)},this.gui_objects.all_headers_box.innerHTML||this.http_request("headers",{_uid:this.env.uid,_mbox:this.env.mailbox},this.display_message("","loading")))};this.hide_headers=function(a,
b){this.gui_objects.all_headers_row&&this.gui_objects.all_headers_box&&($(b).removeClass("hide-headers").addClass("show-headers"),$(this.gui_objects.all_headers_row).hide(),b.onclick=function(){h.command("show-headers","",b)})};this.folder_selector=function(a,b){this.entity_selector("folder-selector",b,this.env.mailboxes_list,function(d,e){var f=0,g=0,k=h.env.delimiter;d=h.env.mailboxes[d];var l=d.id,m=$("<li>");d.virtual?e.addClass("virtual").attr({"aria-disabled":"true",tabindex:"-1"}):e.addClass("active").data("id",
d.id);for(d["class"]&&m.addClass(d["class"]);0<=(g=l.indexOf(k,g));)f++,g++;e.css("padding-left",f?16*f+"px":0);e.append($("<span>").text(d.name));return m.append(e)},a)};this.addressbook_selector=function(a,b){var d=[];this.entity_selectors["addressbook-selector"]||$.each(this.env.address_sources,function(){if(!this.readonly){var e=this;d.push(e);$.each(h.env.contactgroups,function(){e.id===this.source&&d.push(this)})}});this.entity_selector("addressbook-selector",b,d,function(e,f){"group"==e.type?
f.attr("rel",e.source+":"+e.id).addClass("contactgroup active").data({source:e.source,gid:e.id,id:e.source+":"+e.id}).css("padding-left","16px"):f.addClass("addressbook active").data("id",e.id);f.append($("<span>").text(e.name));return $("<li>").append(f)},a)};this.contactgroup_selector=function(a,b){this.entity_selector("contactgroup-selector",b,this.env.contactgroups,function(d,e){if(h.env.source===d.source)return e.addClass("contactgroup active").data({id:d.id}).append($("<span>").text(d.name)),
$("<li>").append(e)},a)};this.entity_selector=function(a,b,d,e,f){var g=this.entity_selectors[a];if(!g){var k=[];g=$("<div>").attr("id",a).addClass("popupmenu");var l=$("<ul>").addClass("toolbarmenu menu"),m=document.createElement("a");m.href="#";m.className="icon";$.each(d,function(q){var p=$(m.cloneNode(!1)).attr("rel",this.id);k.push(e(this,p,q))});l.append(k).appendTo(g);g.css({left:"-1000px",top:"-1000px"}).appendTo(document.body).show();10<k.length&&g.css("max-height",10*$("li",g)[0].offsetHeight+
9);g.on("click","a.active",function(q){g.data("callback")($(this).data("id"),this)});this.entity_selectors[a]=g}g.data("callback",b);this.show_menu(a,!0,f)};this.destroy_entity_selector=function(a){$("#"+a).remove();delete this.entity_selectors[a]};this.show_menu=function(a,b,d){var e="object"==typeof a?a.menu:a,f=$("#"+e),g=d&&d.target?$(d.target):$(f.attr("rel")||"#"+e+"link"),k=rcube_event.is_keyboard(d),l=f.attr("data-align")||"",m=!1;"A"!=g.get(0).tagName&&g.closest("a").length&&(g=g.closest("a"));
"string"==typeof a&&(a={menu:e});f.length||(f=this.triggerEvent("menu-get",{name:e,props:a,originalEvent:d}));if(!f||!f.length)return this.triggerEvent(!1===b?"menu-close":"menu-open",{name:e,props:a,originalEvent:d});f.appendTo(document.body);"undefined"==typeof b&&(b=f.is(":visible")?!1:!0);if(b&&g.length){var q=$(window),p=g.offset(),t=0<=l.indexOf("bottom");m="menuitem"==g.attr("role")||0<g.closest("[role=menuitem]").length;g.offsetWidth=g.outerWidth();g.offsetHeight=g.outerHeight();!t&&p.top+
g.offsetHeight+f.height()>q.height()&&(t=!0);0<=l.indexOf("right")?p.left=p.left+g.outerWidth()-f.width():m&&(p.left=p.left+g.offsetWidth-5,p.top-=g.offsetHeight);p.left+f.width()>q.width()&&(p.left=q.width()-f.width()-12);p.top=Math.max(0,p.top+(t?-f.height():g.offsetHeight));f.css({left:p.left+"px",top:p.top+"px"})}if(b){for(l=this.menu_stack.length-1;m&&0<=l;l--)$(g).parents("#"+this.menu_stack[l]).length||"menuitem"==$(d.target).parent().attr("role")||this.hide_menu(this.menu_stack[l],d);m&&this.menu_stack.length?
(f.data("parent",$.last(this.menu_stack)),f.css("z-index",($("#"+$.last(this.menu_stack)).css("z-index")||0)+1)):!m&&this.menu_stack.length&&this.hide_menu(this.menu_stack[0],d);f.show().attr("aria-hidden","false").data("opener",g.attr("aria-expanded","true").get(0));this.triggerEvent("menu-open",{name:e,obj:f,props:a,originalEvent:d});this.menu_stack.push(e);if(this.menu_keyboard_active=b&&k)this.focused_menu=e,f.find("a,input:not(:disabled)").not("[aria-disabled=true]").first().focus()}else this.hide_menu(e,
d);return b};this.hide_menu=function(a,b){if(this.menu_stack.length){for(var d,e=rcube_event.is_keyboard(b),f=this.menu_stack.length-1;0<=f;f--)d=$("#"+this.menu_stack[f]).hide().attr("aria-hidden","true").data("parent",!1),this.triggerEvent("menu-close",{name:this.menu_stack[f],obj:d,props:{menu:this.menu_stack[f]},originalEvent:b}),this.menu_stack[f]==a&&(f=-1,d.data("opener")&&($(d.data("opener")).attr("aria-expanded","false"),e&&d.data("opener").focus())),this.menu_stack.pop();this.menu_stack.length&&
e?(this.menu_keyboard_active=!0,this.focused_menu=$.last(this.menu_stack),d&&d.data("opener")||$("#"+this.focused_menu).find("a,input:not(:disabled)").not("[aria-disabled=true]").first().focus()):(this.focused_menu=null,this.menu_keyboard_active=!1)}else this.triggerEvent("menu-close",{name:a,props:{menu:a},originalEvent:b})};this.element_position=function(a,b){b=$(b);var d=$(window),e=b.outerWidth(),f=b.outerHeight(),g=b.data("menu-pos"),k=d.height(),l=$(a).height(),m=$(a).width(),q=b.offset();b=
q.top;q=q.left+e;"bottom"==g?(b+=f,q-=e):q-=5;b+l>k&&(b-=l-f,0>b&&(b=Math.max(0,(k-l)/2)));q+m>d.width()&&(q-=m+e);a.css({left:q+"px",top:b+"px"})};this.editor_init=function(a,b){this.editor=new rcube_text_editor(a,b)};this.html2plain=function(a,b){return this.format_converter(a,"html",b)};this.plain2html=function(a,b){return this.format_converter(a,"plain",b)};this.format_converter=function(a,b,d){if(!a||"html"==b&&!a.replace(/<[^>]+>| |\xC2\xA0|\s/g,"").length||"html"!=b&&!a.replace(/\xC2\xA0|\s/g,
"").length)return d&&setTimeout(function(){d("")},50),!0;var e=this.env.editor_warned||confirm(this.get_label("editorwarning"));this.env.editor_warned=!0;if(!e)return!1;b="?_task=utils&_action="+("html"==b?"html2text":"text2html");var f=this.set_busy(!0,"converting");$.ajax({type:"POST",url:b,data:a,contentType:"application/octet-stream",error:function(g,k,l){h.http_error(g,k,l,f)},success:function(g){h.set_busy(!1,null,f);d&&d(g)}});return!0};this.url=function(a,b){var d="string"===typeof b?b:"";
"string"!==typeof a?b=a:b&&"object"===typeof b||(b={});a?b._action=a:this.env.action&&(b._action=this.env.action);var e=this.env.comm_path,f,g={};a&&a.match(/([a-z0-9_-]+)\/([a-z0-9-_.]+)/)&&(b._action=RegExp.$2,e=e.replace(/_task=[a-z0-9_-]+/,"_task="+RegExp.$1));0===b._framed&&(e=e.replace("&_framed=1",""),b._framed=null);for(f in b)void 0!==b[f]&&null!==b[f]&&(g[f]=b[f]);if(g=$.param(g))e+=(-1<e.indexOf("?")?"&":"?")+g;d&&(e+=(-1<e.indexOf("?")?"&":"?")+d);return e};this.redirect=function(a,b){!1!==
b&&this.set_busy(!0,"loading");this.is_framed()?(a=a.replace(/&_framed=1/,""),parent.rcmail.redirect(a,b)):(this.env.extwin&&("string"==typeof a?a+=(0>a.indexOf("?")?"?":"&")+"_extwin=1":a._extwin=1),this.location_href(a,window))};this.goto_url=function(a,b,d,e){a=this.url(a,b);e&&(a=this.secure_url(a));this.redirect(a,d)};this.location_href=function(a,b,d){d&&this.lock_frame(b);"object"==typeof a&&(a=this.env.comm_path+"&"+$.param(a));bw.ie&&b==window?$("<a>").attr("href",a).appendTo(document.body).get(0).click():
b.location.href=a;this.start_keepalive()};this.update_state=function(a){if(window.history.replaceState)try{window.history.replaceState({},document.title,rcmail.url("",a))}catch(b){}};this.http_get=this.http_request=function(a,b,d,e){"POST"!=e&&(e="GET");"object"!==typeof b&&(b=rcube_parse_query(b));b._remote=1;b._unlock=d?d:0;var f=this.triggerEvent("request"+a,b);if(!1===f)return b._unlock&&this.set_busy(!1,null,b._unlock),!1;if(f&&f.getResponseHeader)return f;void 0!==f&&(b=f,b._action&&(a=b._action,
delete b._action));f=this.url(a);this.start_keepalive();return $.ajax({type:e,url:f,data:b,dataType:"json",success:function(g){h.http_response(g)},error:function(g,k,l){h.http_error(g,k,l,d,a)}})};this.http_post=function(a,b,d){return this.http_request(a,b,d,"POST")};this.abort_request=function(a){a.request&&a.request.abort();a.lock&&this.set_busy(!1,null,a.lock)};this.http_response=function(a){if(a){a.unlock&&this.set_busy(!1,null,a.unlock);this.triggerEvent("responsebefore",{response:a});this.triggerEvent("responsebefore"+
a.action,{response:a});a.env&&this.set_env(a.env);var b;if("object"===typeof a.texts)for(b in a.texts)"string"===typeof a.texts[b]&&this.add_label(b,a.texts[b]);a.exec&&eval(a.exec);if(a.callbacks&&a.callbacks.length)for(b=0;b<a.callbacks.length;b++)this.triggerEvent(a.callbacks[b][0],a.callbacks[b][1]);switch(a.action){case "mark":"show"!=this.env.action&&"preview"!=this.env.action||"SEEN"!=this.env.last_flag||this.set_unread_message(this.env.uid,this.env.mailbox);break;case "delete":if("addressbook"==
this.task){b=this.contact_list.get_selection();var d=!1;b&&this.contact_list.rows[b]&&(d=""==this.env.source?(b=String(b).replace(/^[^-]+-/,""))&&this.env.address_sources[b]&&!this.env.address_sources[b].readonly:!this.env.address_sources[this.env.source].readonly);this.enable_command("delete","edit",d);this.enable_command("export",this.contact_list&&0<this.contact_list.rowcount);this.enable_command("export-selected","print",!1)}case "move":"show"==this.env.action?(this.enable_command(this.env.message_commands,
!0),this.env.list_post||this.enable_command("reply-list",!1)):"addressbook"==this.task&&this.triggerEvent("listupdate",{list:this.contact_list,folder:this.env.source,rowcount:this.contact_list.rowcount});case "purge":case "expunge":"mail"==this.task&&(this.env.exists||(this.env.contentframe&&this.show_contentframe(!1),this.enable_command(this.env.message_commands,"purge","expunge","select-all","select-none","expand-all","expand-unread","collapse-all",!1)),this.message_list&&this.triggerEvent("listupdate",
{list:this.message_list,folder:this.env.mailbox,rowcount:this.message_list.rowcount}));break;case "refresh":case "check-recent":$.each(this.env.recent_flags||{},function(f,g){h.set_message(f,"deleted",g.deleted);h.set_message(f,"replied",g.answered);h.set_message(f,"unread",!g.seen);h.set_message(f,"forwarded",g.forwarded);h.set_message(f,"flagged",g.flagged)}),delete this.env.recent_flags;case "getunread":case "search":this.env.qsearch=null;case "list":if("mail"==this.task){d=this.is_multifolder_listing();
var e=this.message_list;b=this.env.list_uid;this.enable_command("show","select-all","select-none",0<this.env.messagecount);this.enable_command("expunge",this.env.exists&&!d);this.enable_command("purge",this.purge_mailbox_test()&&!d);this.enable_command("import-messages",!d);this.enable_command("expand-all","expand-unread","collapse-all",this.env.threading&&this.env.messagecount&&!d);if(e){if("list"==a.action||"search"==a.action)b&&("FIRST"===b?b=e.get_first_row():"LAST"===b?b=e.get_last_row():e.rows[b]||
(b+="-"+this.env.mailbox),b&&e.rows[b]&&e.select(b),delete this.env.list_uid),this.enable_command("set-listmode",this.env.threads&&!d),0<e.rowcount&&!$(document.activeElement).is("input,textarea")&&e.focus(),e.triggerEvent("select");"getunread"!=a.action&&this.triggerEvent("listupdate",{list:e,folder:this.env.mailbox,rowcount:e.rowcount})}}else"addressbook"==this.task&&(e=this.contact_list,b=this.env.list_uid,this.enable_command("export","select-all","select-none",e&&0<e.rowcount),"list"==a.action||
"search"==a.action)&&(this.enable_command("search-create",""==this.env.source),this.enable_command("search-delete",this.env.search_id),this.update_group_commands(),e&&b&&("FIRST"===b?b=e.get_first_row():"LAST"===b&&(b=e.get_last_row()),b&&e.rows[b]&&e.select(b),delete this.env.list_uid,e.triggerEvent("select")),0<e.rowcount&&!$(document.activeElement).is("input,textarea")&&e.focus(),this.triggerEvent("listupdate",{list:e,folder:this.env.source,rowcount:e.rowcount}));break;case "list-contacts":case "search-contacts":this.contact_list&&
(0<this.contact_list.rowcount&&this.contact_list.focus(),this.triggerEvent("listupdate",{list:this.contact_list,rowcount:this.contact_list.rowcount}))}a.unlock&&this.hide_message(a.unlock);this.triggerEvent("responseafter",{response:a});this.triggerEvent("responseafter"+a.action,{response:a});this.start_keepalive()}};this.http_error=function(a,b,d,e,f){d=a.statusText;this.set_busy(!1,null,e);a.abort();this.unload||(a.status&&d?this.display_message(this.get_label("servererror")+" ("+d+")","error"):
"timeout"==b?this.display_message("requesttimedout","error"):0==a.status&&"abort"!=b&&this.display_message("connerror","error"),(b=a.getResponseHeader("Location"))&&"compose"!=this.env.action&&this.redirect(b),403==a.status?(this.is_framed()?parent:window).location.reload():"keep-alive"==f&&setTimeout(function(){h.keep_alive();h.start_keepalive()},3E4))};this.session_error=function(a){this.env.server_error=401;"compose"==this.env.action?(this.save_compose_form_local(),this.compose_skip_unsavedcheck=
!0,this.env.session_lifetime=0,this._keepalive&&clearInterval(this._keepalive),this._refresh&&clearInterval(this._refresh)):a&&setTimeout(function(){h.redirect(a,!0)},2E3)};this.iframe_loaded=function(a){a||(a=this.env.frame_lock);this.set_busy(!1,null,a);this.submit_timer&&clearTimeout(this.submit_timer)};this.multi_thread_http_request=function(a){var b,d=(new Date).getTime(),e=a.threads||1;a.reqid=d;a.running=0;a.requests=[];a.result=[];a._items=$.extend([],a.items);a.lock||(a.lock=this.display_message("",
"loading"));this.http_request_jobs[d]=a;for(b=0;b<e;b++){var f=a._items.shift();if(void 0===f)break;a.running++;a.requests.push(this.multi_thread_send_request(a,f))}return d};this.multi_thread_send_request=function(a,b){var d;if(a.postdata){var e={};for(d in a.postdata)e[d]=String(a.postdata[d]).replace("%s",b);e._reqid=a.reqid}else if("string"==typeof a.query){var f=a.query.replace("%s",b);f+="&_reqid="+a.reqid}else if("object"==typeof a.query&&a.query){f={};for(d in a.query)f[d]=String(a.query[d]).replace("%s",
b);f._reqid=a.reqid}return e?this.http_post(a.action,e):this.http_request(a.action,f)};this.multi_thread_http_response=function(a,b){var d=this.http_request_jobs[b];if(!(!d||0>=d.running||d.cancelled)){d.running--;if(d.onresponse&&"function"==typeof d.onresponse)d.onresponse(a);d.result=$.extend(d.result,a);a=d._items.shift();void 0!==a?(d.running++,d.requests.push(this.multi_thread_send_request(d,a))):0==d.running&&(d.whendone&&"function"==typeof d.whendone&&d.whendone(d.result),this.set_busy(!1,
"",d.lock),delete this.http_request_jobs[b])}};this.multi_thread_request_abort=function(a){if(a=this.http_request_jobs[a]){for(var b=0;0<a.running&&b<a.requests.length;b++)a.requests[b].abort&&a.requests[b].abort();a.running=0;a.cancelled=!0;this.set_busy(!1,"",a.lock)}};this.async_upload_form=function(a,b,d){var e=(new Date).getTime(),f="rcmupload"+e;this.dummy_iframe(f).on("load",{ts:e},d);$(a).attr({target:f,action:this.url(b,{_id:this.env.compose_id||"",_uploadid:e,_from:this.env.action}),method:"POST",
enctype:"multipart/form-data"}).submit();return f};this.dummy_iframe=function(a,b){return $("<iframe>").attr({name:a,src:b,style:"width:0;height:0;visibility:hidden","aria-hidden":"true"}).appendTo(document.body)};this.document_drag_hover=function(a,b){$(this.gui_objects.filedrop)[b?"addClass":"removeClass"]("active")};this.file_drag_hover=function(a,b){a.preventDefault();a.stopPropagation();$(this.gui_objects.filedrop)[b?"addClass":"removeClass"]("hover")};this.file_dropped=function(a){this.file_drag_hover(a,
!1);var b=a.target.files||a.dataTransfer.files;var d={_id:this.env.compose_id||this.env.cid||"",_remote:1,_from:this.env.action};if(b&&b.length)this.file_upload(b,d,{name:(this.env.filedrop.fieldname||"_file")+(this.env.filedrop.single?"":"[]"),single:this.env.filedrop.single,filter:this.env.filedrop.filter,action:h.env.filedrop.action});else if(b=a.dataTransfer.getData("roundcube-uri")){var e="upload"+(new Date).getTime();a=$("<span>").text(a.dataTransfer.getData("roundcube-name")||this.get_label("attaching")).html();
d._uri=b;d._uploadid=e;this.add2attachment_list(e,{name:"",html:a,classname:"uploading",complete:!1})||(this.file_upload_id=this.set_busy(!0,"attaching"));this.http_post(this.env.filedrop.action||"upload",d)}};this.file_upload=function(a,b,d){if(!window.FormData||!a||!a.length)return!1;var e,f=0,g=0,k=new FormData,l=d.name||"_file[]",m=d.single?1:a.length;args=$.extend({_remote:1,_from:this.env.action},b||{});for(b=0;g<m&&(e=a[b]);b++)if(!d.filter||e.type.match(new RegExp(d.filter))){k.append(l,e);
f+=e.size;var q=e.name;g++}if(g){if(this.env.max_filesize&&this.env.filesizeerror&&f>this.env.max_filesize)return this.display_message(this.env.filesizeerror,"error"),!1;if(this.env.max_filecount&&this.env.filecounterror&&g>this.env.max_filecount)return this.display_message(this.env.filecounterror,"error"),!1;var p="upload"+(new Date).getTime();a=1<g?this.get_label("uploadingmany"):q;a=$("<span>").text(a).html();this.add2attachment_list(p,{name:"",html:a,classname:"uploading",complete:!1})||d.lock||
(d.lock=this.file_upload_id=this.set_busy(!0,"uploading"));args._uploadid=p;args._unlock=d.lock;this.uploads[p]=$.ajax({type:"POST",dataType:"json",url:this.url(d.action||"upload",args),contentType:!1,processData:!1,timeout:0,data:k,headers:{"X-Roundcube-Request":this.env.request_token},xhr:function(){var t=$.ajaxSettings.xhr();t.upload&&h.labels.uploadprogress&&(t.upload.onprogress=function(v){(v=h.file_upload_msg(v.loaded,v.total))&&$("#"+p).find(".uploading").text(v)});return t},success:function(t){delete h.uploads[p];
h.http_response(t)},error:function(t,v,w){delete h.uploads[p];h.remove_from_attachment_list(p);h.http_error(t,v,w,d.lock,"attachment")}})}return!0};this.file_upload_msg=function(a,b){if(b&&a<b){var d=Math.round(a/b*100),e=h.get_label("uploadprogress");1073741824<=b?(b=parseFloat(b/1073741824).toFixed(1)+" ".this.get_label("GB"),a=parseFloat(a/1073741824).toFixed(1)):1048576<=b?(b=parseFloat(b/1048576).toFixed(1)+" "+this.get_label("MB"),a=parseFloat(a/1048576).toFixed(1)):1024<=b?(b=parseInt(b/1024)+
" "+this.get_label("KB"),a=parseInt(a/1024)):b=b+" "+this.get_label("B");return e.replace("$percent",d+"%").replace("$current",a).replace("$total",b)}};this.start_keepalive=function(){if(this.env.session_lifetime&&!this.env.framed&&!this.env.extwin&&"login"!=this.task&&"print"!=this.env.action){this._keepalive&&clearInterval(this._keepalive);var a=500*Math.min(1800,this.env.session_lifetime);this._keepalive=setInterval(function(){h.keep_alive()},3E4>a?3E4:a)}};this.start_refresh=function(){!this.env.refresh_interval||
this.env.framed||this.env.extwin||"login"==this.task||"print"==this.env.action||(this._refresh&&clearInterval(this._refresh),this._refresh=setInterval(function(){h.refresh()},1E3*this.env.refresh_interval))};this.keep_alive=function(){this.busy||this.http_request("keep-alive")};this.refresh=function(){if(this.busy)setTimeout(function(){h.refresh();h.start_refresh()},1E4);else{var a={},b=this.set_busy(!0,"refreshing");"mail"==this.task&&this.gui_objects.mailboxlist&&(a=this.check_recent_params());
a._last=Math.floor(this.env.lastrefresh.getTime()/1E3);this.env.lastrefresh=new Date;this.http_post("refresh",a,b)}};this.check_recent_params=function(){var a={_mbox:this.env.mailbox};this.gui_objects.mailboxlist&&(a._folderlist=1);this.gui_objects.quotadisplay&&(a._quota=1);this.env.search_request&&(a._search=this.env.search_request);this.gui_objects.messagelist&&(a._list=1,a._uids=$.map(this.message_list.rows,function(b,d){return d}).join(","));return a};this.quote_html=function(a){return String(a).replace(/</g,
"<").replace(/>/g,">").replace(/"/g,""")};this.opener=function(a,b){var d,e=window.opener;try{if(e&&!e.closed&&e!==window){a&&(!e.rcmail||e.rcmail.env.framed)&&e.parent&&e.parent.rcmail&&(e=e.parent);if(e.rcmail&&b)for(d in b)if(e.rcmail.env[d]!=b[d])return;return e.rcmail}}catch(f){}};this.get_single_uid=function(){var a=this.env.uid||(this.message_list?this.message_list.get_single_selection():null);return h.triggerEvent("get_single_uid",{uid:a})||a};this.get_single_cid=function(){var a=
this.env.cid||(this.contact_list?this.contact_list.get_single_selection():null);return h.triggerEvent("get_single_cid",{cid:a})||a};this.get_message_mailbox=function(a){var b;return this.env.messages&&a&&(b=this.env.messages[a])&&b.mbox?b.mbox:/^[0-9]+-(.*)$/.test(a)?RegExp.$1:this.env.mailbox};this.params_from_uid=function(a,b){b||(b={});b._uid=String(a).split("-")[0];b._mbox=this.get_message_mailbox(a);return b};this.get_caret_pos=function(a){return void 0!==a.selectionEnd?a.selectionEnd:a.value.length};
this.set_caret_pos=function(a,b){try{a.setSelectionRange&&a.setSelectionRange(b,b)}catch(d){}};this.get_input_selection=function(a){var b=0,d=0,e="";"number"==typeof a.selectionStart&&"number"==typeof a.selectionEnd&&(e=a.value,b=a.selectionStart,d=a.selectionEnd);return{start:b,end:d,text:e.substr(b,d-b)}};this.lock_form=function(a,b){a&&a.elements&&(b&&(this.disabled_form_elements=[]),$.each(a.elements,function(){if("hidden"!=this.type)if(b&&this.disabled)h.disabled_form_elements.push(this);else if(b||
0>$.inArray(this,h.disabled_form_elements))this.disabled=b}))};this.mailto_handler_uri=function(){return location.href.split("?")[0]+"?_task=mail&_action=compose&_to=%s"};this.register_protocol_handler=function(a){try{window.navigator.registerProtocolHandler("mailto",this.mailto_handler_uri(),a)}catch(b){this.display_message(String(b),"error")}};this.check_protocol_handler=function(a,b){var d=window.navigator;d&&"function"==typeof d.registerProtocolHandler?"function"==typeof d.isProtocolHandlerRegistered?
(d=d.isProtocolHandlerRegistered("mailto",this.mailto_handler_uri()))&&$(b).parent().find(".mailtoprotohandler-status").html(d):$(b).click(function(){h.register_protocol_handler(a);return!1}):$(b).addClass("disabled").click(function(){h.display_message("nosupporterror","error");return!1})};this.browser_capabilities_check=function(){this.env.browser_capabilities||(this.env.browser_capabilities={});$.each(["pdf","flash","tiff","webp"],function(){void 0===h.env.browser_capabilities[this]&&(h.env.browser_capabilities[this]=
h[this+"_support_check"]())})};this.browser_capabilities=function(){if(!this.env.browser_capabilities)return"";var a,b=[];for(a in this.env.browser_capabilities)b.push(a+"="+this.env.browser_capabilities[a]);return b.join()};this.tiff_support_check=function(){this.image_support_check("tiff");return 0};this.webp_support_check=function(){this.image_support_check("webp");return 0};this.image_support_check=function(a){window.setTimeout(function(){var b=new Image;b.onload=function(){h.env.browser_capabilities[a]=
1};b.onerror=function(){h.env.browser_capabilities[a]=0};b.src=h.assets_path("program/resources/blank."+a)},10)};this.pdf_support_check=function(){var a,b=navigator.mimeTypes?navigator.mimeTypes["application/pdf"]:{},d=navigator.plugins,e=d.length,f=/Adobe Reader|PDF|Acrobat/i;if(b&&b.enabledPlugin)return 1;if("ActiveXObject"in window){try{return b=new ActiveXObject("AcroPDF.PDF"),1}catch(g){}try{return b=new ActiveXObject("PDF.PdfCtrl"),1}catch(g){}}for(a=0;a<e;a++)if(b=d[a],"String"===typeof b){if(f.test(b))return 1}else if(b.name&&
f.test(b.name))return 1;window.setTimeout(function(){$("<object>").attr({data:h.assets_path("program/resources/dummy.pdf"),type:"application/pdf",style:'position: "absolute"; top: -1000px; height: 1px; width: 1px'}).on("load error",function(g){h.env.browser_capabilities.pdf="load"==g.type?1:0;$(this).remove()}).appendTo(document.body)},10);return 0};this.flash_support_check=function(){var a=navigator.mimeTypes?navigator.mimeTypes["application/x-shockwave-flash"]:{};if(a&&a.enabledPlugin)return 1;
if("ActiveXObject"in window)try{return new ActiveXObject("ShockwaveFlash.ShockwaveFlash"),1}catch(b){}return 0};this.assets_path=function(a){this.env.assets_path&&!a.startsWith(this.env.assets_path)&&(a=this.env.assets_path+a);return a};this.set_cookie=function(a,b,d){setCookie(a,b,d,this.env.cookie_path,this.env.cookie_domain,this.env.cookie_secure)};this.get_local_storage_prefix=function(){this.local_storage_prefix||(this.local_storage_prefix="roundcube."+(this.env.user_id||"anonymous")+".");return this.local_storage_prefix};
this.local_storage_get_item=function(a,b,d){try{var e=localStorage.getItem(this.get_local_storage_prefix()+a);var f=JSON.parse(e)}catch(g){}return f||b||null};this.local_storage_set_item=function(a,b,d){try{return localStorage.setItem(this.get_local_storage_prefix()+a,JSON.stringify(b)),!0}catch(e){return!1}};this.local_storage_remove_item=function(a){try{return localStorage.removeItem(this.get_local_storage_prefix()+a),!0}catch(b){return!1}};this.print_dialog=function(){bw.safari?setTimeout("window.print()",
10):window.print()}}rcube_webmail.long_subject_title=function(h,a,b){h.title||(b=$(b||h),b.width()+15*(a||0)>b.parent().width()&&(h.title=rcube_webmail.subject_text(b[0])))};
rcube_webmail.long_subject_title_ex=function(h){if(!h.title){var a=$(h),b=$.trim(a.text()),d=$("span.branch",a).width()||0;b=$("<span>").text(b).css({position:"absolute","float":"left",visibility:"hidden","font-size":a.css("font-size"),"font-weight":a.css("font-weight")}).appendTo(document.body);var e=b.width();b.remove();e+15*d>a.width()&&(h.title=rcube_webmail.subject_text(h))}};rcube_webmail.subject_text=function(h){h=$(h).clone();h.find(".skip-on-drag,.skip-content,.voice").remove();return $.trim(h.text())};
rcube_webmail.set_iframe_events=function(h){$("iframe").each(function(){var a=$(this);$.each(h,function(b,d){a.on("load",function(e){try{$(this).contents().on(b,d)}catch(f){}});try{a.contents().on(b,d)}catch(e){}})})};rcube_webmail.prototype.get_cookie=getCookie;rcube_webmail.prototype.addEventListener=rcube_event_engine.prototype.addEventListener;rcube_webmail.prototype.removeEventListener=rcube_event_engine.prototype.removeEventListener;rcube_webmail.prototype.triggerEvent=rcube_event_engine.prototype.triggerEvent;
|