roundcube_themes/classic/functions.min.js

60 lines
20 KiB
JavaScript

/**
* Roundcube functions for default skin interface
*
* @licstart The following is the entire license notice for the
* JavaScript code in this file.
*
* Copyright (c) The Roundcube Dev Team
*
* 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
* as published by the Free Software Foundation, either version 3 of
* the License, or (at your option) any later version.
*
* @licend The above is the entire license notice
* for the JavaScript code in this file.
*/
function rcube_init_settings_tabs(){var a;var b=$("#tabsbar");var d=$("span",b).last(),c="#settingstabpreferences",e=window.rcmail&&rcmail.env.action?rcmail.env.action:null;d&&"settingstababout"!=d.attr("id")&&(a=$("#settingstababout"))&&(b=a.clone(!0),a.remove(),d.after(b));e&&(c="#settingstab"+(0<e.indexOf("identity")?"identities":e.replace(/\./g,"")));$(c).addClass("tablink-selected");$("a",c).removeAttr("onclick").click(function(){return!1})}
function rcube_init_tabs(a,b){var d=$("#"+a),c=d.children("fieldset");if(c.length){b=b?b:0;var e=d.find(".tabsbar");e.length||(e=$("<div>").addClass("tabsbar").appendTo(d));c.each(function(d){var c=$(this),f=c.children("legend");if(c.is(":visible")&&!c.hasClass("tabbed")){var l=$("<a>").text(f.text()).attr("href","#");var h=$("<span>").attr({id:"tab"+d,"class":"tablink"}).click(function(){rcube_show_tab(a,d);return!1});f.remove();c.addClass("tabbed");d==b&&h.addClass("tablink-selected");h.append(l).appendTo(e)}});
c.each(function(a){a!=b&&$(this).hide()})}}function rcube_show_tab(a,b){$("#"+a).children("fieldset").each(function(a){$(this)[b==a?"show":"hide"]();$("#tab"+a).toggleClass("tablink-selected",a==b)})}
function rcube_mail_ui(){this.popups={markmenu:{id:"markmessagemenu"},replyallmenu:{id:"replyallmenu"},forwardmenu:{id:"forwardmenu",editable:1},searchmenu:{id:"searchmenu",editable:1},messagemenu:{id:"messagemenu"},attachmentmenu:{id:"attachmentmenu"},dragmenu:{id:"dragmenu",sticky:1},groupmenu:{id:"groupoptionsmenu",above:1},mailboxmenu:{id:"mailboxoptionsmenu",above:1},composemenu:{id:"composeoptionsmenu",editable:1,overlap:1},spellmenu:{id:"spellmenu"},responsesmenu:{id:"responsesmenu"},uploadmenu:{id:"attachment-form",
editable:1,above:1,toggle:!bw.ie&&!bw.linux},uploadform:{id:"upload-form",editable:1,toggle:!bw.ie&&!bw.linux}};var a;for(a in this.popups){var b=$("#"+this.popups[a].id);b.length?this.popups[a].obj=b:delete this.popups[a]}}
rcube_mail_ui.prototype={show_popup:function(a,b,d){var c;!this.popups[a]&&(c=$("#"+a))&&c.length&&(this.popups[a]=$.extend(d,{id:a,obj:c}));return"function"==typeof this[a]?this[a](b):this.show_popupmenu(a,b)},show_popupmenu:function(a,b){var d=this.popups[a].obj,c=this.popups[a].above,e=$(this.popups[a].link?this.popups[a].link:rcube_find_object(a+"link"));"undefined"==typeof b?b=d.is(":visible")?!1:!0:this.popups[a].toggle&&b&&this.popups[a].obj.is(":visible")&&(b=!1);if(b&&e.length){var f=e.parent();
a=$(window);f=f.hasClass("dropbutton")?f.offset():e.offset();!c&&f.top+e.height()+d.height()>a.height()&&(c=!0);f.left+d.width()>a.width()&&(f.left=a.width()-d.width()-30);d.css({left:f.left,top:f.top+(c?-d.height():e.height())})}d[b?"show":"hide"]()},dragmenu:function(a){this.popups.dragmenu.obj[a?"show":"hide"]()},forwardmenu:function(a){$("input[name='forwardtype'][value="+(rcmail.env.forward_attachment?1:0)+"]",this.popups.forwardmenu.obj).prop("checked",!0);this.show_popupmenu("forwardmenu",
a)},uploadmenu:function(a){"object"==typeof a&&(a=!1);if(!a)try{$("#attachment-form form")[0].reset()}catch(b){}rcmail.mailvelope_editor||(this.show_popupmenu("uploadmenu",a),!document.all&&this.popups.uploadmenu.obj.is(":visible")&&$("#attachment-form input[type=file]").click())},searchmenu:function(a){var b=this.popups.searchmenu.obj,d=rcube_find_object("searchmenulink");"undefined"==typeof a&&(a=b.is(":visible")?!1:!0);if(a&&d){var c=$(d).offset();b.css({left:c.left,top:c.top+d.offsetHeight+2});
if(rcmail.env.search_mods){var e;d=$('input:checkbox[name="s_mods[]"]',b);c=rcmail.env.mailbox;var f=rcmail.env.search_mods,g=rcmail.env.search_scope||"base";if("mail"==rcmail.env.task){f=f[c]?f[c]:f["*"];var k="text";$('input:radio[name="s_scope"]').prop("checked",!1).filter("#s_scope_"+g).prop("checked",!0)}else k="*";if(f[k])d.map(function(){this.checked=!0;this.disabled=this.value!=k});else for(e in d.prop("disabled",!1).prop("checked",!1),f)$("#s_mod_"+e).prop("checked",!0)}}b[a?"show":"hide"]()},
set_searchmod:function(a){var b=rcmail.env.task;var d=rcmail.env.search_mods,c=rcmail.env.mailbox;"all"==$('input[name="s_scope"]:checked').val()&&(c="*");d||(d={});if("mail"==b){d[c]||(d[c]=rcube_clone_object(d["*"]));var e=d[c];b="text"}else e=d,b="*";a.checked?e[a.value]=1:delete e[a.value];a.value==b&&$('input:checkbox[name="s_mods[]"]').map(function(){this!=a&&(this.checked=!0,a.checked?(this.disabled=!0,delete e[this.value]):(this.disabled=!1,e[this.value]=1))});rcmail.set_searchmods(e)},show_listmenu:function(a){var b=
this,d={},c=$("#listmenu");c.is(":visible")?c.dialog("close",a.originalEvent):($('input[name="sort_col"][value="'+rcmail.env.sort_col+'"]').prop("checked",!0),$('input[name="sort_ord"][value="DESC"]').prop("checked","DESC"==rcmail.env.sort_order),$('input[name="sort_ord"][value="ASC"]').prop("checked","DESC"!=rcmail.env.sort_order),$('input[name="view"][value="thread"]').prop("checked",rcmail.env.threading?!0:!1),$('input[name="view"][value="list"]').prop("checked",rcmail.env.threading?!1:!0),$('input[name="list_col[]"]').each(function(){$(this).prop("checked",
-1!=$.inArray(this.value,rcmail.env.listcols))}),$.each(["widescreen","desktop","list"],function(){$('input[name="layout"][value="'+this+'"]').prop("checked",rcmail.env.layout==this)}),$("#listoptions-columns",c)["widescreen"==rcmail.env.layout?"hide":"show"](),d[rcmail.gettext("save")]=function(a){c.dialog("close",a);b.save_listmenu()},c.dialog({modal:!0,resizable:!1,closeOnEscape:!0,title:null,open:function(a){var b=0;$("#listmenu fieldset").each(function(){var a=$(this).height();a>b&&(b=a)}).css("min-height",
b+"px").height(b);setTimeout(function(){c.find("a, input:not(:disabled)").not("[aria-disabled=true]").first().focus()},100)},close:function(a){c.dialog("destroy").hide();a.originalEvent&&rcube_event.is_keyboard(a.originalEvent)&&$("#listmenulink").focus()},buttons:d,minWidth:500,width:c.width()+20}).show())},save_listmenu:function(){var a=$('input[name="sort_col"]:checked').val(),b=$('input[name="sort_ord"]:checked').val(),d=$('input[name="view"]:checked').val(),c=$('input[name="layout"]:checked').val(),
e=$('input[name="list_col[]"]:checked').map(function(){return this.value}).get();rcmail.set_list_options(e,a,b,"thread"==d?1:0,c)},spellmenu:function(a){var b=rcmail.spellcheck_lang(),d=this.popups.spellmenu.obj,c=$("ul",d);if(!c.length){c=$("<ul>");for(i in rcmail.env.spell_langs){var e=$("<li>");var f=$('<a href="#"></a>').text(rcmail.env.spell_langs[i]).addClass("active").data("lang",i).click(function(){rcmail.spellcheck_lang_set($(this).data("lang"))});f.appendTo(e);e.appendTo(c)}c.appendTo(d)}$("li",
c).each(function(){var a=$("a",this);a.data("lang")==b?a.addClass("selected"):a.hasClass("selected")&&a.removeClass("selected")});this.show_popupmenu("spellmenu",a)},show_attachmentmenu:function(a,b){var d=a.parentNode.id.replace(/^attach/,"");$.each(["open","download","rename"],function(){var a=this;$("#attachmenu"+a).off("click").attr("onclick","").click(function(b){return rcmail.command(a+"-attachment",d,this)})});this.popups.attachmentmenu.link=a;rcmail.command("menu-open",{menu:"attachmentmenu",
id:d},a,b)},menu_open:function(a){a&&"messagelistmenu"==a.name&&this.show_listmenu()},body_mouseup:function(a){var b=a.target;ref=this;$.each(this.popups,function(d,c){!c.obj.is(":visible")||b==rcube_find_object(d+"link")||c.toggle||b==c.obj.get(0)||c.editable&&ref.target_overlaps(b,c.id)||c.sticky&&rcube_mouse_is_over(a,rcube_find_object(c.id))||$(b).is(".folder-selector-link")||$(b).children(".folder-selector-link").length||window.setTimeout('rcmail_ui.show_popup("'+d+'",false);',50)})},target_overlaps:function(a,
b){for(b=rcube_find_object(b);a.parentNode;){if(a.parentNode==b)return!0;a=a.parentNode}return!1},body_keydown:function(a){if(27==a.keyCode)for(var b in this.popups)this.popups[b].obj.is(":visible")&&this.show_popup(b,!1)},set_layout:function(a){var b=a?a.new_layout:rcmail.env.layout,d=$("#mailcontframe"),c=$("#mailpreviewframe");a&&$("#mailrightcontainer").removeClass().addClass(b);this.mailviewsplitv||(this.mailviewsplitv=new rcube_splitter({id:"mailviewsplitterv",p1:"mailleftcontainer",p2:"mailrightcontainer",
orientation:"v",relative:!0,start:165,callback:rcube_render_mailboxlist}),this.mailviewsplitv.init());$("#mailviewsplitter")["desktop"==b?"show":"hide"]();$("#mailviewsplitter2")["widescreen"==b?"show":"hide"]();$("#mailpreviewframe")["list"!=b?"show":"hide"]();rcmail.env.contentframe="list"==b?null:"messagecontframe";"widescreen"==b?($("#countcontrols").detach().appendTo($("#messagelistheader")),d.css({height:"auto",width:400}),c.css({top:0,left:410,height:"auto"}).show(),this.mailviewsplit2?this.mailviewsplit2.resize():
(this.mailviewsplit2=new rcube_splitter({id:"mailviewsplitter2",p1:"mailcontframe",p2:"mailpreviewframe",orientation:"v",relative:!0,start:405}),this.mailviewsplit2.init())):"desktop"==b?(d.css({height:200,width:"100%"}),c.css({left:0,top:210,height:"auto"}).show(),this.mailviewsplit?this.mailviewsplit.resize():(this.mailviewsplit=new rcube_splitter({id:"mailviewsplitter",p1:"mailcontframe",p2:"mailpreviewframe",orientation:"h",relative:!0,start:205}),this.mailviewsplit.init())):(d.css({height:"auto",
width:"100%"}),c.hide());a&&"widescreen"==a.old_layout&&$("#countcontrols").detach().appendTo($("#messagelistfooter"))},init_compose_form:function(){var a,b=["cc","bcc","replyto","followupto"],d=document.getElementById("compose-div"),c=document.getElementById("compose-headers-div");for(a=0;a<b.length;a++){var e=b[a];var f=$("#_"+e);f.length&&(f.on("change",{v:e},function(a){this.value&&rcmail_ui.show_header_form(a.data.v)}),""!=f.val()&&rcmail_ui.show_header_form(e))}bw.ie&&(rcube_find_object("form").onkeydown=
function(a){27==rcube_event.get_keycode(a)&&rcube_event.cancel(a)});$(window).resize(function(){rcmail_ui.resize_compose_body()});$("#compose-container").resize(function(){rcmail_ui.resize_compose_body()});d.style.top=parseInt(c.offsetHeight,10)+3+"px";$(window).resize();$("#contacts-table").css("top",$("#directorylist").height()+24+"px");$("#quicksearchbox").keydown(function(a){13==rcube_event.get_keycode(a)&&rcmail.command("search")})},resize_compose_body:function(){var a=$("#compose-div .boxlistcontent"),
b=a.width()-6;a=a.height()-2;var d=bw.ie||bw.opera?4:0;$("#compose-body_ifr").width(b+6).height(a-1-$("div.mce-toolbar").height());$("#compose-body").width(b-d).height(a);$("#googie_edit_layer").width(b).height(a)},resize_compose_body_ev:function(){window.setTimeout(function(){rcmail_ui.resize_compose_body()},100)},show_header_form:function(a){var b,d=document.getElementById(a+"-link");if(b=this.next_sibling(d))b.style.display="none";else if(b=this.prev_sibling(d))b.style.display="none";d.style.display=
"none";if(a=document.getElementById("compose-"+a))b=document.getElementById("compose-div"),d=document.getElementById("compose-headers-div"),$(a).show(),b.style.top=parseInt(d.offsetHeight,10)+3+"px",this.resize_compose_body();return!1},hide_header_form:function(a){var b,d=document.getElementById(a+"-link"),c=d.parentNode.getElementsByTagName("a");d.style.display="";for(d=0;d<c.length;d++)if("none"!=c[d].style.display)for(var e=d+1;e<c.length;e++)if("none"!=c[e].style.display&&(b=this.next_sibling(c[d]))){b.style.display=
"";break}document.getElementById("_"+a).value="";if(a=document.getElementById("compose-"+a))b=document.getElementById("compose-div"),c=document.getElementById("compose-headers-div"),a.style.display="none",b.style.top=parseInt(c.offsetHeight,10)+1+"px",this.resize_compose_body();return!1},next_sibling:function(a){for(a=a.nextSibling;a&&3==a.nodeType;)a=a.nextSibling;return a},prev_sibling:function(a){for(a=a.previousSibling;a&&3==a.nodeType;)a=a.previousSibling;return a},enable_command:function(a){"reply-list"==
a.command&&1==rcmail.env.reply_all_mode?(a=rcmail.gettext(a.status?"replylist":"replyall"),$("a.button.replyAll").attr("title",a)):"compose-encrypted"==a.command?$("#messagetoolbar a.encrypt").parent().show():"compose-encrypted-signed"==a.command&&$("#encryptionmenulink").show()},folder_search_init:function(a){$(".boxtitle a.search",a).click(function(b){var d=$(".boxtitle",a),c=$(".listsearchbox",a),e=c.is(":visible")?-1:1,f=24+($("select",c).length?24:0);c.slideToggle({duration:160,progress:function(b,
c){0>e&&(c=1-c);$(".boxlistcontent",a).css("top",d.outerHeight()+f*c+"px")},complete:function(){c.toggleClass("expanded");c.is(":visible")?c.find("input[type=text]").focus():$("a.reset",c).click()}});return!1})}};
function rcube_layer(a,b){this.name=a;this.create=function(a){var b=a.x?a.x:0,d=a.y?a.y:0,f=a.width,g=a.height,k=a.zindex,l=a.vis;a=a.parent;var h=document.createElement("DIV");h.id=this.name;h.style.position="absolute";h.style.visibility=l?2==l?"inherit":"visible":"hidden";h.style.left=b+"px";h.style.top=d+"px";f&&(h.style.width=f.toString().match(/%$/)?f:f+"px");g&&(h.style.height=g.toString().match(/%$/)?g:g+"px");k&&(h.style.zIndex=k);a?a.appendChild(h):document.body.appendChild(h);this.elm=h};
null!=b?(this.create(b),this.name=this.elm.id):this.elm=document.getElementById(a);if(!this.elm)return!1;this.css=this.elm.style;this.event=this.elm;this.width=this.elm.offsetWidth;this.height=this.elm.offsetHeight;this.x=parseInt(this.elm.offsetLeft);this.y=parseInt(this.elm.offsetTop);this.visible="visible"==this.css.visibility||"show"==this.css.visibility||"inherit"==this.css.visibility?!0:!1;this.move=function(a,b){this.x=a;this.y=b;this.css.left=Math.round(this.x)+"px";this.css.top=Math.round(this.y)+
"px"};this.resize=function(a,b){this.css.width=a+"px";this.css.height=b+"px";this.width=a;this.height=b};this.show=function(a){1==a?(this.css.visibility="visible",this.visible=!0):2==a?(this.css.visibility="inherit",this.visible=!0):(this.css.visibility="hidden",this.visible=!1)};this.write=function(a){this.elm.innerHTML=a}}
function rcmail_scroller(a,b,d){var c=this;this.list=$(a);this.top=$(b);this.bottom=$(d);this.step_size=6;this.step_time=20;this.delay=500;this.top.mouseenter(function(){c.ts=window.setTimeout(function(){c.scroll("down")},c.delay)}).mouseout(function(){c.ts&&window.clearTimeout(c.ts)});this.bottom.mouseenter(function(){c.ts=window.setTimeout(function(){c.scroll("up")},c.delay)}).mouseout(function(){c.ts&&window.clearTimeout(c.ts)});this.scroll=function(a){var b=this,c=this.step_size;rcmail.drag_active&&
("down"==a&&(c*=-1),this.list.get(0).scrollTop+=c,this.ts=window.setTimeout(function(){b.scroll(a)},this.step_time))}}
function rcube_render_mailboxlist(){var a=$("#mailboxlist > li > a, #mailboxlist ul:visible > li > a");100<a.length||a.each(function(){var a=$(this),d=a.data("text");d||(d=a.text().replace(/\s+\([0-9]+\)$/,""),a.data("text",d));if(!(6>d.length)){var c=fit_string_to_size(d,a,a.width()-a.children("span.unreadcount").width()-16);c!=d&&a.attr("title",d);a.contents().filter(function(){return 3==this.nodeType}).get(0).data=c}})}
function fit_string_to_size(a,b,d){var c=a;rcmail.env.tmp_span?b=rcmail.env.tmp_span:(b=$("<b>").css({visibility:"hidden",padding:"0px","font-family":b.css("font-family"),"font-size":b.css("font-size")}).appendTo($("body",document)).get(0),rcmail.env.tmp_span=b);var e=$(b);e.text(c);var f=b.offsetWidth;if(f>d){d=Math.max(1,Math.floor((f-d)/f*a.length/2));c=Math.floor(a.length/2);for(var g;;){f=c-d;g=c+d;e.text(a.substring(0,f)+"..."+a.substring(g));if(3>f||b.offsetWidth)break;d++}c=a.substring(0,
f)+"..."+a.substring(g)}return c}function update_quota(a){percent_indicator(rcmail.gui_objects.quotadisplay,a);if(a.table){var b=$("#quotamenu");b.length||(b=$('<div id="quotamenu" class="popupmenu">').appendTo($("body")));b.html(a.table);$("#quotaimg").css("cursor","pointer").off("click").on("click",function(a){return rcmail.command("menu-open","quotamenu",a.target,a)})}}
function percent_indicator(a,b){if(!b||!a)return!1;var d=b.width?b.width:rcmail.env.indicator_width?rcmail.env.indicator_width:100,c=b.height?b.height:rcmail.env.indicator_height?rcmail.env.indicator_height:14,e=b.percent?Math.abs(parseInt(b.percent)):0,f=parseInt(e/100*d),g=$(a).position();g.top=Math.max(0,g.top);g.left=Math.max(0,g.left);rcmail.env.indicator_width=d;rcmail.env.indicator_height=c;f>d&&(f=d,e=100);b.title&&(b.title=rcmail.get_label("quota")+": "+b.title);var k=$("<div>");k.css({position:"absolute",
top:g.top,left:g.left,width:d+"px",height:c+"px",zIndex:100,lineHeight:c+"px"}).attr("title",b.title).addClass("quota_text").html(e+"%");var l=$("<div>");l.css({position:"absolute",top:g.top+1,left:g.left+1,width:f+"px",height:c+"px",zIndex:99});f=$("<div>");f.css({position:"absolute",top:g.top+1,left:g.left+1,width:d+"px",height:c+"px",zIndex:98}).addClass("quota_bg");80<=e?(k.addClass(" quota_text_high"),l.addClass("quota_high")):55<=e?(k.addClass(" quota_text_mid"),l.addClass("quota_mid")):(k.addClass(" quota_text_low"),
l.addClass("quota_low"));$(a).html("").append(l).append(f).append(k);$("#quotaimg").attr("title",b.title)}function attachment_menu_append(a){$(a).append($('<a class="drop"></a>').on("click keypress",function(a){if("keypress"!=a.type||13==a.which)return rcmail_ui.show_attachmentmenu(this,a),!1}))}var rcmail_editor_settings={},rcmail_ui;
function rcube_init_mail_ui(){rcmail_ui=new rcube_mail_ui;$(document.body).mouseup(function(a){rcmail_ui.body_mouseup(a)}).mousedown(function(a){rcmail_ui.body_keydown(a)});rcmail.addEventListener("init",function(){rcmail.env.quota_content&&update_quota(rcmail.env.quota_content);rcmail.addEventListener("setquota",update_quota);rcube_webmail.set_iframe_events({mouseup:function(a){return rcmail_ui.body_mouseup(a)}});if("mail"==rcmail.env.task)if(rcmail.addEventListener("enable-command","enable_command",
rcmail_ui).addEventListener("menu-open","menu_open",rcmail_ui).addEventListener("aftersend-attachment","uploadmenu",rcmail_ui).addEventListener("aftertoggle-editor","resize_compose_body_ev",rcmail_ui).addEventListener("afterbounce",function(){rcmail_ui.show_popup("forwardmenu",!1)}).gui_object("dragmenu","dragmenu"),rcmail.gui_objects.mailboxlist&&(rcmail.treelist.addEventListener("expand",rcube_render_mailboxlist),rcmail.addEventListener("responseaftermark",rcube_render_mailboxlist).addEventListener("responseaftergetunread",
rcube_render_mailboxlist).addEventListener("responseaftercheck-recent",rcube_render_mailboxlist).addEventListener("responseafterrefresh",rcube_render_mailboxlist).addEventListener("afterimport-messages",function(){rcmail_ui.show_popup("uploadform",!1)})),rcmail.init_pagejumper("#pagejumper"),bw.ie&&rcmail.message_list&&$(window).resize(function(){setTimeout(function(){rcmail.message_list.resize()},10)}),"list"==rcmail.env.action||!rcmail.env.action)rcmail.addEventListener("layout-change","set_layout",
rcmail_ui),rcmail_ui.set_layout();else if("compose"==rcmail.env.action)rcmail_ui.init_compose_form(),rcmail.addEventListener("compose-encrypted",function(a){$("a.button.encrypt")[a.active?"addClass":"removeClass"]("selected");$("select[name='editorSelector']").prop("disabled",a.active);$("a.button.attach, a.button.responses, a.button.attach, #uploadmenulink")[a.active?"addClass":"removeClass"]("buttonPas disabled");$("#responseslist a.insertresponse")[a.active?"removeClass":"addClass"]("active")}),
rcmail.addEventListener("fileappended",function(a){a.attachment.complete&&attachment_menu_append(a.item)}),$("#attachmentslist > li").each(function(){attachment_menu_append(this)});else{if("show"==rcmail.env.action||"preview"==rcmail.env.action)$('#attachment-list > li[id^="attach"]').each(function(){attachment_menu_append(this)}),$(window).resize(function(){$('#attachment-list > li[id^="attach"]').length||$("#attachment-list").hide();var a=$("#messagebody.mailvelope");if(a.length){var b=$("#messageframe");
b=(b.length?b.height()+b.offset().top-25:$(this).height())-a.offset().top-20;a.height(b)}})}else"addressbook"==rcmail.env.task?rcmail.addEventListener("afterupload-photo",function(){rcmail_ui.show_popup("uploadform",!1)}).gui_object("dragmenu","dragmenu"):"settings"==rcmail.env.task&&("folders"==rcmail.env.action&&rcmail_ui.folder_search_init($("#folder-manager")),$("#mainscreen > #prefs-title").detach().prependTo($("#mainscreen > .box")))})};