-var DimpBase={bcache:$H(),lastrow:-1,mo_sidebar:{},pivotrow:-1,ppcache:{},ppfifo:[],showPreview:DIMP.conf.preview_pref,sfiltersfolder:$H({sf_all:"all",sf_current:"current"}),sfilters:$H({sf_msgall:"msgall",sf_from:"from",sf_to:"to",sf_subject:"subject"}),_select:function(C,A){var B=C.get("rownum");if(B.size()==1){this.lastrow=this.pivotrow=B.first()}this.toggleButtons();if($("previewPane").visible()){if(A.right){this.clearPreviewPane()}else{if(A.delay){(this.bcache.get("initPP")||this.bcache.set("initPP",this.initPreviewPane.bind(this))).delay(A.delay)}else{this.initPreviewPane()}}}},_deselect:function(D,B){var C=this.viewport.getSelected(),A=C.size();if(!A){this.lastrow=this.pivotrow=-1}this.toggleButtons();if(B.right||!A){this.clearPreviewPane()}else{if((A==1)&&$("previewPane").visible()){this._loadPreview(C.get("dataob").first())}}},msgSelect:function(G,C){var B,E=this.viewport.createSelection("domid",G),A=E.get("rownum").first(),D=this.isSelected("domid",G),F=this.selectedCount();this.lastrow=A;$("msgList_filter").blur();if(C.shift){if(F){if(!D||F!=1){B=[A,this.pivotrow];this.viewport.select($A($R(B.min(),B.max())),{range:true})}return}}else{if(C.ctrl){this.pivotrow=A;if(D){this.viewport.deselect(E,{right:C.right});return}else{if(C.right||F){this.viewport.select(E,{add:true,right:C.right});return}}}}this.viewport.select(E,{right:C.right})},selectAll:function(){this.viewport.select($A($R(1,this.viewport.getMetaData("total_rows"))),{range:true})},isSelected:function(B,A){return this.viewport.getSelected().contains(B,A)},selectedCount:function(){return(this.viewport)?this.viewport.getSelected().size():0},resetSelected:function(){if(this.viewport){this.viewport.deselect(this.viewport.getSelected(),{clearall:true})}this.toggleButtons();this.clearPreviewPane()},moveSelected:function(A,G){var E,D,F,B,C;if(G){if(!this.viewport.getMetaData("total_rows")){return}E=A}else{if(A==0){return}C=this.viewport.getSelected();switch(C.size()){case 0:E=this.viewport.currentOffset()+1;break;case 1:D=C.get("dataob").first();E=D.rownum+A;break;default:C=C.get("rownum");E=(A>0?C.max():C.min())+A;break}E=(A>0)?Math.min(E,this.viewport.getMetaData("total_rows")):Math.max(E,1)}F=this.viewport.createSelection("rownum",E);if(F.size()){B=F.get("dataob").first();if(!D||B.imapuid!=D.imapuid){this.viewport.scrollTo(B.rownum);this.viewport.select(F,{delay:0.3})}}else{this.offset=E;this.viewport.requestContentRefresh(E-1)}},go:function(E,B){var D,A,C;if(E.startsWith("compose:")){return}if(E.startsWith("msg:")){C=E.indexOf(":",4);A=E.substring(4,C);this.uid=E.substring(C+1);E="folder:"+A}if(E.startsWith("folder:")){A=E.substring(7);if(this.folder!=A||!$("dimpmain_folder").visible()){this.highlightSidebar(this.getFolderId(A));if(!$("dimpmain_folder").visible()){$("dimpmain_portal").hide();$("dimpmain_folder").show()}if(!Object.isUndefined(this.folder)){this._addHistory(E)}}this.loadFolder(A);return}this.folder=null;$("dimpmain_folder").hide();$("dimpmain_portal").update(DIMP.text.loading).show();if(E.startsWith("app:")){D=E.substr(4);if(D=="imp"){this.go("folder:INBOX");return}this.highlightSidebar("app"+D);this._addHistory(E,B);if(B){this.iframeContent(E,B)}else{if(DIMP.conf.app_urls[D]){this.iframeContent(E,DIMP.conf.app_urls[D])}}return}switch(E){case"portal":this.highlightSidebar("appportal");this._addHistory(E);DimpCore.setTitle(DIMP.text.portal);DimpCore.doAction("ShowPortal",{},null,this.bcache.get("portalC")||this.bcache.set("portalC",this._portalCallback.bind(this)));break;case"options":this.highlightSidebar("appoptions");this._addHistory(E);DimpCore.setTitle(DIMP.text.prefs);this.iframeContent(E,DIMP.conf.prefs_url);break}},_addHistory:function(B,A){if(Horde.dhtmlHistory.getCurrentLocation()!=B){Horde.dhtmlHistory.add(B,A)}},highlightSidebar:function(B){if($("foldersLoading").visible()){this.highlightSidebar.bind(this,B).defer();return}$("sidebarPanel").select(".on").invoke("removeClassName","on");var A=$(B);if(!A){return}if(!A.match("LI")){A=A.up();if(!A){return}}A.addClassName("on");A.ancestors().find(function(C){if(C.hasClassName("subfolders")){this._toggleSubFolder(C.id.substring(3),"exp")}else{return(C.id=="foldersSidebar")}},this)},iframeContent:function(B,D){if(B===null){B=D}var A=$("dimpmain_portal"),C;if(!A){DimpCore.showNotifications([{type:"horde.error",message:"Bad portal!"}]);return}C=new Element("IFRAME",{id:"iframe"+B,className:"iframe",frameBorder:0,src:D});this._resizeIE6Iframe(C);if(B=="options"){C.observe("load",function(){$("iframeoptions").contentWindow.document.getElementById("menu").style.display="none"})}A.insert(C)},msgWindow:function(B){this.updateUnseenUID(B,0);var A=DIMP.conf.message_url;A+=(A.include("?")?"&":"?")+$H({folder:B.view,uid:B.imapuid}).toQueryString();DimpCore.popupWindow(A,"msgview"+B.view+B.imapuid)},composeMailbox:function(A){var B=this.viewport.getSelected();if(!B.size()){return}B.get("dataob").each(function(C){DimpCore.compose(A,{folder:C.view,uid:C.imapuid})})},loadFolder:function(B,A){if(!this.viewport){this._createViewPort()}if(!A){this.resetSelected();if(this.folder==B){this.searchfilterClear(false);return}this.searchfilterClear(true);$("folderName").update(DIMP.text.loading);$("msgHeader").update();this.folderswitch=true;this.folder=B}this.viewport.loadView(B,{folder:B},this.uid?{imapuid:this.uid,view:B}:null,A)},_createViewPort:function(){var B=$("msgList_filter"),A=this.setMessageListTitle.bind(this);this.viewport=new ViewPort({content_container:"msgList",empty_container:"msgList_empty",error_container:"msgList_error",fetch_action:"ListMessages",template:this.message_list_template,buffer_pages:DIMP.conf.buffer_pages,limit_factor:DIMP.conf.limit_factor,viewport_wait:DIMP.conf.viewport_wait,show_split_pane:this.showPreview,split_pane:"previewPane",splitbar:"splitBar",content_class:"msglist",row_class:"msgRow",selected_class:"selectedRow",ajaxRequest:DimpCore.doAction.bind(DimpCore),norows:true,onScrollIdle:A,onSlide:A,onViewChange:function(){DimpCore.addGC(this.viewport.visibleRows())}.bind(this),onContent:function(F){var E,D,C=((this.viewport.getMetaData("sortby")==DIMP.conf.sortthread)&&this.viewport.getMetaData("thread"));if(this.viewport.isFiltering()){D=this.sfilters.get(this._getSearchfilterField()).capitalize();E=new RegExp("("+$F("msgList_filter")+")","i")}F.get("dataob").each(function(K){var H,I,G,J=$(K.domid);if(C&&C[K.imapuid]){H=J.down(".msgSubject");I=H.cloneNode(false);G=C[K.imapuid];$R(0,G.length,true).each(function(L){I.insert($($("thread_img_"+G.charAt(L)).cloneNode(false)).writeAttribute("id",""))});H.replace(I.insert(H.getText().escapeHTML()))}if(K.atc){J.down(".msgSize").insert({top:$($("atc_img_"+K.atc).cloneNode(false)).writeAttribute("id","")})}DimpCore.addMouseEvents({id:K.domid,type:K.menutype});if(D=="From"||D=="Subject"){H=J.down(".msg"+D);H.update(H.getText().escapeHTML().gsub(E,'<span class="searchMatch">#{1}</span>'))}},this);this.setMessageListTitle()}.bind(this),onComplete:function(){var E,C,D=this.viewport.getMetaData("label");if(this.uid){E=this.viewport.getViewportSelection().search({imapuid:{equal:[this.uid]},view:{equal:[this.folder]}});if(E.size()){this.viewport.scrollTo(E.get("rownum").first());this.viewport.select(E)}}else{if(this.offset){this.viewport.select(this.viewport.createSelection("rownum",this.offset))}}this.offset=this.uid=null;D=this.viewport.getMetaData("label");if(D){$("folderName").update(D)}if(this.folderswitch){this.folderswitch=false;if(this.folder==DIMP.conf.spam_folder){if(!DIMP.conf.spam_spamfolder&&DimpCore.buttons.indexOf("button_spam")!=-1){[$("button_spam").up(),$("ctx_message_spam")].invoke("hide")}if(DimpCore.buttons.indexOf("button_ham")!=-1){[$("button_ham").up(),$("ctx_message_ham")].invoke("show")}}else{if(DimpCore.buttons.indexOf("button_spam")!=-1){[$("button_spam").up(),$("ctx_message_spam")].invoke("show")}if(DimpCore.buttons.indexOf("button_ham")!=-1){if(DIMP.conf.ham_spamfolder){[$("button_ham").up(),$("ctx_message_ham")].invoke("hide")}else{[$("button_ham").up(),$("ctx_message_ham")].invoke("show")}}}}else{if(this.filtertoggle){if(this.filtertoggle==1&&this.viewport.getMetaData("sortby")==DIMP.conf.sortthread){C=DIMP.conf.sortdate}this.filtertoggle=0}}this.setSortColumns(C);if(this.viewport.isFiltering()){this.resetSelected()}else{this.setFolderLabel(this.folder,this.viewport.getMetaData("unseen")||0)}this.updateTitle()}.bind(this),onFetch:this.msgListLoading.bind(this,true),onEndFetch:this.msgListLoading.bind(this,false),onWait:function(){if($("dimpmain_folder").visible()){DimpCore.showNotifications([{type:"horde.warning",message:DIMP.text.listmsg_wait}])}},onFail:function(){if($("dimpmain_folder").visible()){DimpCore.showNotifications([{type:"horde.error",message:DIMP.text.listmsg_timeout}])}this.msgListLoading(false)}.bind(this),onFirstContent:function(){this.clearPreviewPane();$("msgList").observe("dblclick",this._handleMsgListDblclick.bindAsEventListener(this))}.bind(this),onClearRows:function(C){C.each(function(D){var E=$(D).down("div.msCheck");if(E){DimpCore.addGC(E)}if(D.id){DimpCore.removeMouseEvents(D)}})},onBeforeResize:function(){var C=this.viewport.getSelected();this.isvisible=(C.size()==1)&&(this.viewport.isVisible(C.get("rownum").first())==0)}.bind(this),onAfterResize:function(){if(this.isvisible){this.viewport.scrollTo(this.viewport.getSelected().get("rownum").first())}}.bind(this),selectCallback:this._select.bind(this),deselectCallback:this._deselect.bind(this)});if(!this.showPreview){$("msgList").addClassName("msglistNoPreview")}this.viewport.addFilter("ListMessages",this._addSearchfilterParams.bind(this));B.observe("keyup",this._searchfilterOnKeyup.bind(this));B.observe("focus",this._searchfilterOnFocus.bind(this));B.observe("blur",this._searchfilterOnBlur.bind(this));B.addClassName("msgFilterDefault")},_addMouseEvents:function(B,C){var A;switch(C.type){case"draft":case"message":new Drag(C.id,this._msgDragConfig);A=$(C.id).down("div.msCheck");if(A.visible()){A.observe("mousedown",this.bcache.get("handleMLC")||this.bcache.set("handleMLC",this._handleMsgListCheckbox.bindAsEventListener(this)));A.observe("contextmenu",Event.stop)}break;case"container":case"folder":new Drag(C.id,this._folderDragConfig);break;case"special":C.type="folder";break;case"vcontainer":case"virtual":$(C.id).observe("contextmenu",Event.stop);break}C.onShow=this.bcache.get("onMS")||this.bcache.set("onMS",this._onMenuShow.bind(this));B(C)},_removeMouseEvents:function(B,A){var C,D=$(A).readAttribute("id");if(D&&(C=DragDrop.Drags.get_drag(D))){C.destroy()}B(A)},_onMenuShow:function(A){var E,C,B,D;switch(A.ctx){case"ctx_folder":E=$("ctx_folder_create","ctx_folder_rename","ctx_folder_delete");C=DimpCore.DMenu.element();if(C.readAttribute("mbox")=="INBOX"){E.invoke("hide")}else{if(DIMP.conf.fixed_folders.indexOf(C.readAttribute("mbox"))!=-1){E.shift();E.invoke("hide")}else{E.invoke("show")}}if(C.hasAttribute("u")){$("ctx_folder_poll").hide();$("ctx_folder_nopoll").show()}else{$("ctx_folder_poll").show();$("ctx_folder_nopoll").hide()}break;case"ctx_message":[$("ctx_message_reply_list")].invoke(this.viewport.createSelection("domid",A.id).get("dataob").first().listmsg?"show":"hide");break;case"ctx_reply":D=this.viewport.getSelected();if(D.size()==1){B=D.get("dataob").first()}[$("ctx_reply_reply_list")].invoke(B&&B.listmsg?"show":"hide");break;case"ctx_otheractions":$("oa_seen","oa_unseen","oa_flagged","oa_clear","oa_sep1","oa_blacklist","oa_whitelist","oa_sep2").compact().invoke(this.viewport.getSelected().size()?"show":"hide");break}return true},_onResize:function(B,A){if(this.viewport){this.viewport.onResize(B,A)}this._resizeIE6()},_handleMsgListDblclick:function(B){var A=this._getMsgRow(B),C;if(!A){return}C=this.viewport.createSelection("domid",A.id).get("dataob").first();C.draft?DimpCore.compose("resume",{folder:C.view,uid:C.imapuid}):this.msgWindow(C);B.stop()},_handleMsgListCheckbox:function(B){var A=this._getMsgRow(B);if(!A){return}this.msgSelect(A.readAttribute("id"),{ctrl:true,right:true});B.stop()},_getMsgRow:function(A){A=A.element();if(A&&!A.hasClassName("msgRow")){A=A.up(".msgRow")}return A},updateTitle:function(){var B,A,C;if(this.viewport.isFiltering()){A=DIMP.text.search+" :: "+this.viewport.getMetaData("total_rows")+" "+DIMP.text.resfound}else{B=$(this.getFolderId(this.folder));if(B){C=B.readAttribute("u");A=B.readAttribute("l");if(C>0){A+=" ("+C+")"}}else{A=this.viewport.getMetaData("label")}}DimpCore.setTitle(A)},sort:function(D){if(this.viewport.getMetaData("sortlimit")){return}var B,C,A=D.element();if(!A.hasAttribute("sortby")){A=A.up("[sortby]");if(!A){return}}C=parseInt(A.readAttribute("sortby"),10);if(C==this.viewport.getMetaData("sortby")){B={sortdir:(this.viewport.getMetaData("sortdir")?0:1)};this.viewport.setMetaData({sortdir:B.sortdir})}else{B={sortby:C};this.viewport.setMetaData({sortby:B.sortby})}this.setSortColumns(C);this.viewport.reload(B)},setSortColumns:function(C){var B,A=$("msglistHeader");if(Object.isUndefined(C)){C=this.viewport.getMetaData("sortby")}B=A.down("small[sortby="+C+"]");if(B&&B.up().visible()){B.up(1).childElements().invoke("toggle")}B=A.down("div.msgFrom a");if((this.viewport.isFiltering()&&this.fspecial)||this.viewport.getMetaData("special")){B.hide().next().show()}else{B.show().next().hide()}B=A.down("div.msgSubject a");if(this.viewport.isFiltering()||this.viewport.getMetaData("nothread")||this.viewport.getMetaData("sortlimit")){B.show().next().hide();B.down().hide()}else{B.down().show()}A.childElements().invoke("removeClassName","sortup").invoke("removeClassName","sortdown");B=A.down("div a[sortby="+C+"]");if(B){B.up().addClassName(this.viewport.getMetaData("sortdir")?"sortup":"sortdown")}},togglePreviewPane:function(){this.showPreview=!this.showPreview;$("previewtoggle").setText(this.showPreview?DIMP.text.hide_preview:DIMP.text.show_preview);[$("msgList")].invoke(this.showPreview?"removeClassName":"addClassName","msglistNoPreview");new Ajax.Request(DimpCore.addSID(DIMP.conf.URI_PREFS),{parameters:{app:"imp",pref:"show_preview",value:this.showPreview?1:0}});this.viewport.showSplitPane(this.showPreview);if(this.showPreview){this.initPreviewPane()}},_loadPreview:function(C){var A=$("previewPane"),B;if(!A.visible()){return}if(this.pp&&this.pp==C){return}this.pp=C;if(this.ppfifo.indexOf(C.vp_id)!=-1){return this._loadPreviewCallback(this.ppcache[C.vp_id])}B=A.positionedOffset();$("msgLoading").setStyle({position:"absolute",top:(B.top+10)+"px",left:(B.left+10)+"px"}).show();DimpCore.doAction("ShowPreview",{},this.viewport.createSelection("dataob",C),this.bcache.get("loadPC")||this.bcache.set("loadPC",this._loadPreviewCallback.bind(this)))},_loadPreviewCallback:function(resp){var row,search,tmp,tmp2,pm=$("previewMsg"),r=resp.response,t=$("msgHeadersContent").down("THEAD");if(!r.error){search=this.viewport.getViewportSelection(r.view).search({vp_id:{equal:[r.uid]}});if(search.size()){row=search.get("dataob").first();this.updateUnseenUID(row,0)}}if(this.pp&&this.pp.vp_id!=r.uid){return}if(r.error||this.viewport.getSelected().size()!=1){if(r.error){DimpCore.showNotifications([{type:r.errortype,message:r.error}])}this.clearPreviewPane();return}this._expirePPCache([r.uid]);this.ppcache[r.uid]=resp;this.ppfifo.push(r.uid);DimpCore.removeAddressLinks(pm);DIMP.conf.msg_index=r.index;DIMP.conf.msg_folder=r.folder;tmp=pm.select(".subject");tmp.invoke("update",r.subject);switch(r.priority){case"high":case"low":tmp.invoke("insert",{top:$($(r.priority+"_priority_img").cloneNode(false)).writeAttribute("id",false)});break}$("msgHeadersColl").select(".date").invoke("update",r.minidate);$("msgHeaderDate").select(".date").invoke("update",r.fulldate);["from","to","cc"].each(function(a){if(r[a]){(a=="from"?pm.select("."+a):[t.down("."+a)]).each(function(elt){elt.replace(DimpCore.buildAddressLinks(r[a],elt.cloneNode(false)))})}[$("msgHeader"+a.capitalize())].invoke(r[a]?"show":"hide")});$("toggleHeaders").select(".attachmentImage").invoke(r.atc_label?"show":"hide");if(r.atc_label){tmp=$("msgAtc").show().down(".label");tmp2=$("partlist");tmp2.hide().previous().update(new Element("STRONG").insert(r.atc_label)).insert(r.atc_download);if(r.atc_list){$("partlist_col").show();$("partlist_exp").hide();tmp.down().hide().next().show();tmp2.update(r.atc_list)}else{tmp.down().show().next().hide()}}else{$("msgAtc").hide()}$("msgBody").down().update(r.msgtext);$("msgLoading","previewInfo").invoke("hide");$("previewPane").scrollTop=0;pm.show();if(r.js){eval(r.js.join(";"))}this._addHistory("msg:"+row.view+":"+row.imapuid)},initPreviewPane:function(){var A=this.viewport.getSelected();if(A.size()!=1){this.clearPreviewPane()}else{this._loadPreview(A.get("dataob").first())}},clearPreviewPane:function(){$("msgLoading","previewMsg").invoke("hide");$("previewInfo").show();this.pp=null},_expirePPCache:function(A){this.ppfifo=this.ppfifo.without(A);A.each(function(B){delete this.ppcache[B]},this);if(this.ppfifo.size()>20){delete this.ppcache[this.ppfifo.shift()]}},updateUnseenUID:function(B,E){var C,D,A;if(!B.bg){return false}A=B.bg.indexOf("unseen")!=-1;if((E&&A)||(!E&&!A)){return false}C=this.viewport.createSelection("dataob",B);D=parseInt($(this.getFolderId(B.view)).readAttribute("u"),10);if(E){this.viewport.updateFlag(C,"unseen",true);++D}else{this.viewport.updateFlag(C,"unseen",false);--D}this.updateUnseenStatus(B.view,D)},updateUnseenStatus:function(B,A){if(this.viewport){this.viewport.setMetaData({unseen:A},B)}this.setFolderLabel(B,A);if(this.folder==B){this.updateTitle()}},setMessageListTitle:function(){var B,A=this.viewport.getMetaData("total_rows");if(A>0){B=this.viewport.currentOffset();$("msgHeader").update(DIMP.text.messages+" "+(B+1)+" - "+(Math.min(B+this.viewport.getPageSize(),A))+" "+DIMP.text.of+" "+A)}else{$("msgHeader").update(DIMP.text.nomessages)}},setFolderLabel:function(B,C){var A,D=this.getFolderId(B);A=$(D);if(!A||!A.hasAttribute("u")){return}C=parseInt(C);A.writeAttribute("u",C);if(B=="INBOX"&&window.fluid){window.fluid.setDockBadge(C?C:"")}$(D+"_label").update((C>0)?new Element("STRONG").insert(A.readAttribute("l")).insert(" ").insert(new Element("SPAN",{className:"count",dir:"ltr"}).insert("("+C+")")):A.readAttribute("l"))},getFolderId:function(A){return"fld"+decodeURIComponent(A).replace(/_/g,"__").replace(/\W/g,"_")},getSubFolderId:function(A){return"sub"+A},pollFolders:function(){this.setPollFolders();var A={};if(this.folder&&$("dimpmain_folder").visible()){A=this.viewport.addRequestParams({})}$("checkmaillink").down("A").update("["+DIMP.text.check+"]");DimpCore.doAction("PollFolders",A,null,this.bcache.get("pollFC")||this.bcache.set("pollFC",this._pollFoldersCallback.bind(this)))},_pollFoldersCallback:function(B){var C,A;B=B.response;if(B.poll){A=this;$H(B.poll).each(function(D){A.updateUnseenStatus(D.key,D.value)})}if(B.quota){C=$("quota").cleanWhitespace();C.setText(B.quota.m);C.down("SPAN.used IMG").writeAttribute({width:99-B.quota.p})}$("checkmaillink").down("A").update(DIMP.text.getmail)},setPollFolders:function(){if(DIMP.conf.refresh_time){if(this.pollPE){this.pollPE.stop()}this.pollPE=new PeriodicalExecuter(this.pollFolders.bind(this),DIMP.conf.refresh_time)}},_portalCallback:function(B){if(B.response.linkTags){var A=$$("HEAD").first();B.response.linkTags.each(function(C){var D=new Element("LINK",{type:"text/css",rel:"stylesheet",href:C.href});if(C.media){D.media=C.media}A.insert(D)})}$("dimpmain_portal").update(B.response.portal);$("dimpmain_portal").select("h1.header a").each(this.bcache.get("portalClkLink")||this.bcache.set("portalClkLink",function(C){C.observe("click",function(D,E){this.go("app:"+E.readAttribute("app"));D.stop()}.bindAsEventListener(this,C))}.bind(this)))},_searchfilterOnKeyup:function(){if(this.searchobserve){clearTimeout(this.searchobserve)}this.searchobserve=(this.bcache.get("searchfilterR")||this.bcache.set("searchfilterR",this.searchfilterRun.bind(this))).delay(0.5)},searchfilterRun:function(){if(!this.viewport.isFiltering()){this.filtertoggle=1;this.fspecial=this.viewport.getMetaData("special")}this.viewport.runFilter($F("msgList_filter"))},_searchfilterOnFocus:function(){var A=$("qoptions").up();if($("msgList_filter").hasClassName("msgFilterDefault")){this._setFilterText(false)}if(!A.visible()){$("sf_current").update(this.viewport.getMetaData("label"));this._setSearchfilterParams(this.viewport.getMetaData("special")?"to":"from","msg");this._setSearchfilterParams("current","folder");$(document.documentElement).setStyle({overflowY:"hidden"});Effect.SlideDown(A,{duration:0.5,afterFinish:function(){this._onResize(false,true);$(document.documentElement).setStyle({overflowY:"auto"})}.bind(this)})}},_searchfilterOnBlur:function(){if(!$F("msgList_filter")){this._setFilterText(true)}},searchfilterClear:function(A){var B=$("qoptions").up();if(!B.visible()){return}if(this.searchobserve){clearTimeout(this.searchobserve);this.searchobserve=null}this._setFilterText(true);Effect.SlideUp(B,{duration:0.5,afterFinish:this._onResize.bind(this,A)});this.filtertoggle=2;this.resetSelected();this.viewport.stopFilter(A)},_setFilterText:function(B){var A=$("msgList_filter");if(B){A.setValue(DIMP.text.search);A.addClassName("msgFilterDefault")}else{A.setValue("");A.removeClassName("msgFilterDefault")}},_setSearchfilterParams:function(C,A){var B=(A=="folder")?this.sfiltersfolder:this.sfilters;B.keys().each(function(D){$(D).writeAttribute("className",(C==B.get(D))?"qselected":"")})},updateSearchfilter:function(B,A){this._setSearchfilterParams(B,A);if($F("msgList_filter")){this.viewport.runFilter()}},_addSearchfilterParams:function(){var A=this.sfiltersfolder.keys().find(function(B){return $(B).hasClassName("qselected")});return{searchfolder:this.sfiltersfolder.get(A),searchmsg:this.sfilters.get(this._getSearchfilterField())}},_getSearchfilterField:function(){return this.sfilters.keys().find(function(A){return $(A).hasClassName("qselected")})},toggleButtons:function(){var A=(this.selectedCount()==0);DimpCore.buttons.each(function(B){var C=$(B);if(C){[C.up()].invoke(A?"addClassName":"removeClassName","disabled");DimpCore.DMenu.disable(B+"_img",true,A)}})},_folderDropHandler:function(C,D,H){var G,F,E,B=C.readAttribute("mbox"),A=C.readAttribute("ftype");if(D.hasClassName("folder")){G=(C==$("dropbase"));if(G||(A!="special"&&!this.isSubfolder(D,C))){DimpCore.doAction("RenameFolder",{old_name:D.readAttribute("mbox"),new_parent:G?"":B,new_name:D.readAttribute("l")},null,this.bcache.get("folderC")||this.bcache.set("folderC",this._folderCallback.bind(this)))}}else{if(A!="container"){F=this.viewport.getSelected();if(F.size()){E=F}else{if(D.readAttribute("mbox")!=B){E=this.viewport.createSelection("domid",D.id)}}if(E.size()){if(H.ctrlKey){DimpCore.doAction("CopyMessage",this.viewport.addRequestParams({tofld:B}),E,this.bcache.get("pollFC")||this.bcache.set("pollFC",this._pollFoldersCallback.bind(this)))}else{if(this.folder!=B){this.viewport.updateFlag(E,"deletedmsg",true);DimpCore.doAction("MoveMessage",this.viewport.addRequestParams({tofld:B}),E,this.bcache.get("deleteC")||this.bcache.set("deleteC",this._deleteCallback.bind(this)))}}}}}},_dragCaption:function(){var A=this.selectedCount();return A+" "+(A==1?DIMP.text.message:DIMP.text.messages)},_keydownHandler:function(E){if(!$("dimpmain_folder").visible()||E.findElement("FORM")||RedBox.overlayVisible()){return}var H,G,B,F,D,A=E.keyCode||E.charCode,C=this.viewport.getSelected();switch(A){case Event.KEY_DELETE:case Event.KEY_BACKSPACE:if(C.size()==1){B=C.get("dataob").first();if(E.shiftKey){this.moveSelected(B.rownum+((B.rownum==this.viewport.getMetaData("total_rows"))?-1:1),true)}this.flag("deleted",B)}else{this.flag("deleted")}E.stop();break;case Event.KEY_UP:case Event.KEY_DOWN:if(E.shiftKey&&this.lastrow!=-1){F=this.viewport.createSelection("rownum",this.lastrow+((A==Event.KEY_UP)?-1:1));if(F.size()){F=F.get("dataob").first();this.viewport.scrollTo(F.rownum);this.msgSelect(F.domid,{shift:true})}}else{this.moveSelected(A==Event.KEY_UP?-1:1)}E.stop();break;case Event.KEY_PAGEUP:case Event.KEY_PAGEDOWN:if(!E.ctrlKey&&!E.shiftKey&&!E.altKey&&!E.metaKey){G=this.viewport.getPageSize()-1;move=G*(A==Event.KEY_PAGEUP?-1:1);if(C.size()==1){H=this.viewport.currentOffset();D=C.get("rownum").first()-1;switch(A){case Event.KEY_PAGEUP:if(H!=D){move=H-D}break;case Event.KEY_PAGEDOWN:if((H+G)!=D){move=H+G-D}break}}this.moveSelected(move);E.stop()}break;case Event.KEY_HOME:case Event.KEY_END:this.moveSelected(A==Event.KEY_HOME?1:this.viewport.getMetaData("total_rows"),true);E.stop();break;case Event.KEY_RETURN:if(!E.element().match("input")){if(C.size()==1){this.msgWindow(C.get("dataob").first())}}E.stop();break;case 65:case 97:if(E.ctrlKey){this.selectAll();E.stop()}break}},renameFolder:function(A){if(Object.isUndefined(A)){return}A=$(A);var B=this._createFolderForm(function(C){this._folderAction(A,C,"rename");return false}.bindAsEventListener(this),DIMP.text.rename_prompt);B.down("input").setValue(A.readAttribute("l"))},createBaseFolder:function(){this._createFolderForm(function(A){this._folderAction("",A,"create");return false}.bindAsEventListener(this),DIMP.text.create_prompt)},createSubFolder:function(A){if(Object.isUndefined(A)){return false}this._createFolderForm(function(B){this._folderAction($(A),B,"createsub");return false}.bindAsEventListener(this),DIMP.text.createsub_prompt)},_createFolderForm:function(A,B){var C=new Element("FORM",{action:"#",id:"RB_folder"}).insert(new Element("P").insert(B)).insert(new Element("INPUT",{type:"text",size:15})).insert(new Element("INPUT",{type:"button",className:"button",value:DIMP.text.ok}).observe("click",A)).insert(new Element("INPUT",{type:"button",className:"button",value:DIMP.text.cancel}).observe("click",this.bcache.get("closeRB")||this.bcache.set("closeRB",this._closeRedBox.bind(this)))).observe("keydown",function(D){if((D.keyCode||D.charCode)==Event.KEY_RETURN){D.stop();A(D)}});RedBox.overlay=true;RedBox.onDisplay=Form.focusFirstElement.curry(C);RedBox.showHtml(C);return C},_closeRedBox:function(){var A=RedBox.getWindowContents();DimpCore.addGC([A,A.descendants()].flatten());RedBox.close()},_folderAction:function(B,D,G){this._closeRedBox();var C,F,E,A=D.findElement("form");E=$F(A.down("input"));if(E){switch(G){case"rename":if(B.readAttribute("l")!=E){C="RenameFolder";F={old_name:B.readAttribute("mbox"),new_parent:B.up().hasClassName("folderlist")?"":B.up(1).previous().readAttribute("mbox"),new_name:E}}break;case"create":case"createsub":C="CreateFolder";F={folder:E};if(G=="createsub"){F.parent=B.readAttribute("mbox")}break}if(C){DimpCore.doAction(C,F,null,this.bcache.get("folderC")||this.bcache.set("folderC",this._folderCallback.bind(this)))}}},_folderCallback:function(A){A=A.response;if(A.d){A.d.each(this.bcache.get("deleteFolder")||this.bcache.set("deleteFolder",this.deleteFolder.bind(this)))}if(A.c){A.c.each(this.bcache.get("changeFolder")||this.bcache.set("changeFolder",this.changeFolder.bind(this)))}if(A.a){A.a.each(this.bcache.get("createFolder")||this.bcache.set("createFolder",this.createFolder.bind(this)))}},_deleteCallback:function(C){var A,B=[];this.msgListLoading(false);this._pollFoldersCallback(C);C=C.response;if(!C.uids||C.folder!=this.folder){return}$H(DimpCore.parseRangeString(C.uids)).each(function(D){D.value.each(function(E){B.push(E+D.key)})});A=this.viewport.getViewportSelection().search({vp_id:{equal:B}});if(A.size()){if(C.remove){this.viewport.remove(A,{cacheid:C.cacheid,noupdate:C.viewport});this._expirePPCache(A.get("uid"))}else{this.viewport.updateFlag(A,"deletedmsg",true)}}},_emptyFolderCallback:function(A){if(A.response.mbox){if(this.folder==A.response.mbox){this.viewport.reload();this.clearPreviewPane()}this.setFolderLabel(A.response.mbox,0)}},_flagAllCallback:function(A){if(A.response.mbox){this.setFolderLabel(A.response.mbox,A.response.u)}},_folderLoadCallback:function(B){this._folderCallback(B);var D=$("specialfolders","normalfolders").compact(),C=$("normalfolders"),A=C.getStyle("max-height");D.invoke("observe","click",this._handleFolderMouseEvent.bindAsEventListener(this,"click"));D.invoke("observe","mouseover",this._handleFolderMouseEvent.bindAsEventListener(this,"over"));if(DIMP.conf.is_ie6){D.invoke("observe","mouseout",this._handleFolderMouseEvent.bindAsEventListener(this,"out"))}$("foldersLoading").hide();$("foldersSidebar").show();if(A!==null||(Prototype.Browser.IE&&Object.isUndefined(A)&&(C.getStyle("height")=="0px"))){this._sizeFolderlist();Event.observe(window,"resize",this._sizeFolderlist.bind(this))}},_handleFolderMouseEvent:function(E,D){var C,B=E.element(),A=B.up(".folder")||B.up(".custom");if(!A){return}C=A.readAttribute("ftype");switch(D){case"over":if(DIMP.conf.is_ie6){A.addClassName("over")}if(C&&!this.mo_sidebar[A.id]){DimpCore.addMouseEvents({id:A.id,type:C});this.mo_sidebar[A.id]=1}break;case"out":A.removeClassName("over");break;case"click":if(B.hasClassName("exp")||B.hasClassName("col")){this._toggleSubFolder(A.id,"tog")}else{switch(C){case"container":case"vcontainer":E.stop();break;case"folder":case"special":case"virtual":E.stop();return this.go("folder:"+A.readAttribute("mbox"));break}}break}},_toggleSubFolder:function(C,D){C=$(C);var B={duration:0.2},A=$(this.getSubFolderId(C.id));if(A&&(D=="tog"||(D=="exp"&&!A.visible())||(D=="col"&&A.visible()))){if(C.descendantOf("specialfolders")){B.afterFinish=this._sizeFolderlist}C.firstDescendant().writeAttribute({className:A.visible()?"exp":"col"});if(A.visible()){Effect.BlindUp(A,B)}else{Effect.BlindDown(A,B)}}},createFolder:function(C){var B,F,I,G,H,E=this.getFolderId(C.m),A=decodeURIComponent(C.m),D=this.getSubFolderId(E),J=$(D);I=new Element("LI",{className:"folder",id:E,l:C.l,mbox:A,ftype:(C.v?(C.co?"vcontainer":"virtual"):(C.co?"container":(C.s?"special":"folder")))});B=new Element("DIV",{className:C.cl||"base",id:E+"_div"});if(C.i){B.update(C.i)}if(C.ch){B.writeAttribute({className:"exp"}).observe("mouseover",this.bcache.get("mo_folder")||this.bcache.set("mo_folder",function(K){K=K.element();if(DragDrop.Drags.drag&&K.hasClassName("exp")){this._toggleSubFolder(K.up(),"exp")}}.bindAsEventListener(this)))}I.insert(B).insert(new Element("A",{id:E+"_label",title:C.l}).insert(C.l));if(J){if(J.insert({before:I}).visible()){B.removeClassName("exp").addClassName("col")}}else{if(C.s){H=$("specialfolders")}else{H=$(this.getSubFolderId(this.getFolderId(C.pa)));H=(H)?H.down("UL"):$("normalfolders")}G=A.toLowerCase();F=H.childElements().find(function(K){var L=K.readAttribute("mbox");return L&&(!C.s||L!="INBOX")&&(G<L.toLowerCase())});if(F){F.insert({before:I})}else{H.insert(I)}if(C.ch){I.insert({after:new Element("LI",{className:"subfolders",id:D}).insert(new Element("UL")).hide()})}}if(!C.v){new Drop(I,this._folderDropConfig)}if(C.po){I.writeAttribute("u","");this.setFolderLabel(A,C.u)}},deleteFolder:function(A){var B=decodeURIComponent(A),C;if(this.folder==B){this.go("folder:INBOX")}C=this.getFolderId(A);this.deleteFolderElt(C,true);Effect.Fade(C,{afterFinish:function(D){try{DimpCore.addGC(D.element.remove())}catch(E){DimpCore.debug("deleteFolder",E)}}})},changeFolder:function(B){var D=this.getFolderId(B.m),A=$(D+"_div"),C=A&&A.hasClassName("col");this.deleteFolderElt(D,!B.ch);if(B.co&&this.folder==B.m){this.go("folder:INBOX")}$(D).remove();this.createFolder(B);if(B.ch&&C){A.removeClassName("exp").addClassName("col")}},deleteFolderElt:function(D,B){var C=$(D),A;DimpCore.addGC($(C,D+"_div",D+"_label"));if(B){A=$(this.getSubFolderId(D));if(A){A.remove()}}[DragDrop.Drags.get_drag(D),DragDrop.Drops.get_drop(D)].compact().invoke("destroy");DimpCore.removeMouseEvents(C);delete this.mo_sidebar[D];if(this.viewport){this.viewport.deleteView(D)}},_sizeFolderlist:function(){var A=$("normalfolders");A.setStyle({height:(document.viewport.getHeight()-A.cumulativeOffset()[1]-10)+"px"})},flag:function(F,D,E){var C,B,H,G=[],A=1;if(D){if(Object.isUndefined(E)){H=this.viewport.createSelection("dataob",D)}else{H=this.viewport.getViewportSelection().search({imapuid:{equal:[D]},view:{equal:[E]}});if(!H.size()&&E!=this.folder){H=this.viewport.getViewportSelection(E).search({imapuid:{equal:[D]}})}}}else{H=this.viewport.getSelected()}switch(F){case"allUnseen":case"allSeen":DimpCore.doAction((F=="allUnseen")?"MarkFolderUnseen":"MarkFolderSeen",{folder:E},null,this.bcache.get("flagAC")||this.bcache.set("flagAC",this._flagAllCallback.bind(this)));if(E==this.folder){this.viewport.updateFlag(this.createSelection("rownum",$A($R(1,this.viewport.getMetaData("total_rows")))),"unseen",F=="allUnseen")}break;case"deleted":case"undeleted":case"spam":case"ham":case"blacklist":case"whitelist":if(!H.size()){break}if(F=="deleted"){H=H.search({isdel:{not:[true]}});if(!H.size()){break}H.set({isdel:true})}B=this.viewport.addRequestParams({});if(F=="deleted"||F=="undeleted"){this.viewport.updateFlag(H,"deletedmsg",F=="deleted")}if(F=="undeleted"){DimpCore.doAction("UndeleteMessage",B,H)}else{C={deleted:"DeleteMessage",spam:"ReportSpam",ham:"ReportHam",blacklist:"Blacklist",whitelist:"Whitelist"};DimpCore.doAction(C[F],B,H,this.bcache.get("deleteC")||this.bcache.set("deleteC",this._deleteCallback.bind(this)),{asynchronous:!(D&&E)});if(F=="spam"||F=="ham"){this.msgListLoading(true)}}break;case"unseen":case"seen":if(!H.size()){break}B={folder:this.folder,messageFlag:"-\\seen"};if(F=="seen"){A=0;B.messageFlag="\\seen"}G=H.get("dataob");if(G.size()){G.each(function(I){this.updateUnseenUID(I,A)},this);DimpCore.doAction("MarkMessage",B,this.viewport.createSelection("dataob",G))}break;case"flagged":case"clear":if(!H.size()){break}B={folder:this.folder,messageFlag:((F=="flagged")?"\\flagged":"-\\flagged")};this.viewport.updateFlag(H,"flagged",F=="flagged");DimpCore.doAction("MarkMessage",B,H);break;case"answered":this.viewport.updateFlag(H,"answered",true);this.viewport.updateFlag(H,"flagged",false);break}},purgeDeleted:function(){DimpCore.doAction("PurgeDeleted",this.viewport.addRequestParams({}),null,this.bcache.get("deleteC")||this.bcache.set("deleteC",this._deleteCallback.bind(this)))},modifyPollFolder:function(A,B){DimpCore.doAction("ModifyPollFolder",{folder:A,add:(B)?1:0},null,this.bcache.get("modifyPFC")||this.bcache.set("modifyPFC",this._modifyPollFolderCallback.bind(this)))},_modifyPollFolderCallback:function(A){A=A.response;var B=A.folder,D,C={response:{poll:{}}};D=$(this.getFolderId(B));if(A.add){C.response.poll[B]=A.poll.u;D.writeAttribute("u",0)}else{C.response.poll[B]=0}this._pollFoldersCallback(C);if(!A.add){D.removeAttribute("u")}},msgListLoading:function(A){var B;if(this.fl_visible!=A){this.fl_visible=A;if(A){B=$("msgList").positionedOffset();$("folderLoading").setStyle({position:"absolute",top:(B.top+10)+"px",left:(B.left+10)+"px"});Effect.Appear("folderLoading",{duration:0.2});$(document.body).setStyle({cursor:"progress"})}else{Effect.Fade("folderLoading",{duration:0.2});$(document.body).setStyle({cursor:"default"})}}},isSubfolder:function(B,C){var A=$(this.getSubFolderId(B.readAttribute("id")));return A&&C.descendantOf(A)},_onLoad:function(){var B,D=DimpCore.clickObserveHandler,A=DimpCore.DMenu;if(Horde.dhtmlHistory.initialize()){Horde.dhtmlHistory.addListener(this.go.bind(this))}if(!Horde.dhtmlHistory.getCurrentLocation()){if(DIMP.conf.login_view=="inbox"){this.go("folder:INBOX")}else{this.go("portal");if(DIMP.conf.background_inbox){this.loadFolder("INBOX",true)}}}this._setFilterText(true);DimpCore.addPopdown("button_reply","reply");A.disable("button_reply_img",true,true);DimpCore.addPopdown("button_forward","forward");A.disable("button_forward_img",true,true);DimpCore.addPopdown("button_other","otheractions");B=$("logo");if(B.visible()){D({d:B.down("a"),f:this.go.bind(this,"portal")})}D({d:$("composelink"),f:DimpCore.compose.bind(DimpCore,"new")});D({d:$("checkmaillink"),f:this.pollFolders.bind(this)});["portal","options"].each(function(C){var E=$("app"+C);if(E){D({d:E,f:this.go.bind(this,C)})}},this);B=$("applogout");if(B){D({d:B,f:DimpCore.logout.bind(DimpCore)})}B=$("applicationfolders");if(B){B.select("li.custom a").each(function(C){D({d:C,f:this.go.bind(this,"app:"+C.readAttribute("app"))})},this)}D({d:$("newfolder"),f:this.createBaseFolder.bind(this)});new Drop("dropbase",this._folderDropConfig);B=$("hometab");if(B){D({d:B,f:this.go.bind(this,"portal")})}$("tabbar").select("a.applicationtab").each(function(C){D({d:C,f:this.go.bind(this,"app:"+C.readAttribute("app"))})},this);D({d:$("button_reply"),f:this.composeMailbox.bind(this,"reply"),ns:true});D({d:$("button_forward"),f:this.composeMailbox.bind(this,DIMP.conf.forward_default),ns:true});["spam","ham","deleted"].each(function(C){var E=$("button_"+C);if(E){D({d:E,f:this.flag.bind(this,C)})}},this);D({d:$("button_compose").down("A"),f:DimpCore.compose.bind(DimpCore,"new")});D({d:$("button_other"),f:function(C){A.trigger(C.findElement("A").next(),true)},p:true});D({d:$("qoptions").down(".qclose a"),f:this.searchfilterClear.bind(this,false)});["all","current"].each(function(C){var E=$("sf_"+C);if(E){D({d:E,f:this.updateSearchfilter.bind(this,C,"folder")})}},this);["msgall","from","to","subject"].each(function(C){D({d:$("sf_"+C),f:this.updateSearchfilter.bind(this,C,"msg")})},this);D({d:$("msglistHeader"),f:this.sort.bind(this),p:true});D({d:$("ctx_folder_create"),f:function(){this.createSubFolder(A.element())}.bind(this),ns:true});D({d:$("ctx_folder_rename"),f:function(){this.renameFolder(A.element())}.bind(this),ns:true});D({d:$("ctx_folder_empty"),f:function(){var C=A.element().readAttribute("mbox");A.close(true);if(window.confirm(DIMP.text.empty_folder)){DimpCore.doAction("EmptyFolder",{folder:C},null,this._emptyFolderCallback.bind(this))}}.bind(this),ns:true});D({d:$("ctx_folder_delete"),f:function(){var C=A.element().readAttribute("mbox");A.close(true);if(window.confirm(DIMP.text.delete_folder)){DimpCore.doAction("DeleteFolder",{folder:C},null,this.bcache.get("folderC")||this.bcache.set("folderC",this._folderCallback.bind(this)))}}.bind(this),ns:true});["ctx_folder_seen","ctx_folder_unseen"].each(function(C){D({d:$(C),f:function(E){this.flag(E,null,A.element().readAttribute("mbox"))}.bind(this,C=="ctx_folder_seen"?"allSeen":"allUnseen"),ns:true})},this);["ctx_folder_poll","ctx_folder_nopoll"].each(function(C){D({d:$(C),f:function(E){this.modifyPollFolder(A.element().readAttribute("mbox"),E)}.bind(this,C=="ctx_folder_poll"),ns:true})},this);D({d:$("ctx_container_create"),f:function(){this.createSubFolder(A.element())}.bind(this),ns:true});D({d:$("ctx_container_rename"),f:function(){this.renameFolder(A.element())}.bind(this),ns:true});["reply","reply_all","reply_list","forward_all","forward_body","forward_attachments"].each(function(C){D({d:$("ctx_message_"+C),f:this.composeMailbox.bind(this,C),ns:true})},this);["seen","unseen","flagged","clear","spam","ham","blacklist","whitelist","deleted","undeleted"].each(function(C){var E=$("ctx_message_"+C);if(E){D({d:E,f:this.flag.bind(this,C),ns:true})}},this);D({d:$("ctx_draft_resume"),f:this.composeMailbox.bind(this,"resume")});["flagged","clear","deleted","undeleted"].each(function(C){var E=$("ctx_draft_"+C);if(E){D({d:E,f:this.flag.bind(this,C),ns:true})}},this);["reply","reply_all","reply_list"].each(function(C){D({d:$("ctx_reply_"+C),f:this.composeMailbox.bind(this,C),ns:true})},this);["forward_all","forward_body","forward_attachments"].each(function(C){D({d:$("ctx_forward_"+C),f:this.composeMailbox.bind(this,C),ns:true})},this);D({d:$("previewtoggle"),f:this.togglePreviewPane.bind(this),ns:true});["seen","unseen","flagged","clear","blacklist","whitelist"].each(function(C){var E=$("oa_"+C);if(E){D({d:E,f:this.flag.bind(this,C),ns:true})}},this);D({d:$("oa_selectall"),f:this.selectAll.bind(this),ns:true});B=$("oa_purge_deleted");if(B){D({d:B,f:this.purgeDeleted.bind(this),ns:true})}$("toggleHeaders").select("A").each(function(C){D({d:C,f:function(){[C.up().select("A"),$("msgHeadersColl","msgHeaders")].flatten().invoke("toggle")},ns:true})});$("msg_newwin","msg_newwin_options").compact().each(function(C){D({d:C,f:function(){this.msgWindow(this.viewport.getViewportSelection().search({imapuid:{equal:[DIMP.conf.msg_index]},view:{equal:[DIMP.conf.msg_folder]}}).get("dataob").first())}.bind(this)})},this);DimpCore.messageOnLoad();this._resizeIE6()},_resizeIE6:function(){if(DIMP.conf.is_ie6){var A=parseInt($("sidebarPanel").getStyle("width"),10),B=document.viewport.getWidth()-A-30;$("normalfolders").setStyle({width:A+"px"});$("dimpmain").setStyle({width:B+"px"});$("msglist").setStyle({width:(B-5)+"px"});$("msgBody").setStyle({width:(B-25)+"px"});A=$("dimpmain_portal").down("IFRAME");if(A){this._resizeIE6Iframe(A)}}},_resizeIE6Iframe:function(A){if(DIMP.conf.is_ie6){A.setStyle({width:$("dimpmain").getStyle("width"),height:(document.viewport.getHeight()-20)+"px"})}}};DimpBase._msgDragConfig={scroll:"normalfolders",threshold:5,caption:DimpBase._dragCaption.bind(DimpBase),onStart:function(C,B){var A={right:B.isRightClick()},D=C.element.id;C.selectIfNoDrag=false;if(!A.right&&(B.ctrlKey||B.metaKey)){this.msgSelect(D,$H({ctrl:true}).merge(A).toObject())}else{if(B.shiftKey){this.msgSelect(D,$H({shift:true}).merge(A).toObject())}else{if(this.isSelected("domid",D)){if(!A.right&&this.selectedCount()){C.selectIfNoDrag=true}}else{this.msgSelect(D,A)}}}}.bind(DimpBase),onEnd:function(B,A){if(B.selectIfNoDrag&&!B.wasDragged){this.msgSelect(B.element.id,{right:A.isRightClick()})}}.bind(DimpBase)};DimpBase._folderDragConfig={ghosting:true,offset:{x:5,y:5},scroll:"normalfolders",threshold:5,onDrag:function(B,A){if(!B.wasDragged){$("newfolder").hide();$("dropbase").show();B.ghost.removeClassName("on")}},onEnd:function(B,A){if(B.wasDragged){$("newfolder").show();$("dropbase").hide()}}};DimpBase._folderDropConfig={hoverclass:"dragdrop",caption:function(D,E,F){var A,G=E.readAttribute("l"),C=D.readAttribute("ftype"),B=D.readAttribute("l");if(D==$("dropbase")){return DIMP.text.moveto.replace(/%s/,G).replace(/%s/,DIMP.text.baselevel)}else{A=(F.ctrlKey)?DIMP.text.copyto:DIMP.text.moveto;if(E.hasClassName("folder")){return(C!="special"&&!this.isSubfolder(E,D))?A.replace(/%s/,G).replace(/%s/,B):""}else{return C!="container"?A.replace(/%s/,this._dragCaption()).replace(/%s/,B):""}}}.bind(DimpBase),onDrop:DimpBase._folderDropHandler.bind(DimpBase)};document.observe("dom:loaded",function(){$("dimpLoading").hide();$("dimpPage").show();DimpCore.doAction("ListFolders",{},null,DimpBase._folderLoadCallback.bind(DimpBase));DimpBase._onLoad();if(!DIMP.conf.search_all){DimpBase.sfiltersfolder.unset("sf_all")}DimpBase.setPollFolders();document.observe("keydown",DimpBase._keydownHandler.bind(DimpBase));Event.observe(window,"resize",DimpBase._onResize.bind(DimpBase));if(DIMP.conf.is_ie6){document.observe("selectstart",Event.stop);$("dimpbarActions","serviceActions","applicationfolders").compact().invoke("select","LI").flatten().compact().each(function(A){A.observe("mouseover",A.addClassName.curry("over")).observe("mouseout",A.removeClassName.curry("over"))})}});DimpCore.onDoActionComplete=function(A){if(DimpBase.viewport&&A.response.viewport){DimpBase.viewport.ajaxResponse(A.response.viewport)}};DimpCore.addMouseEvents=DimpCore.addMouseEvents.wrap(DimpBase._addMouseEvents.bind(DimpBase));DimpCore.removeMouseEvents=DimpCore.removeMouseEvents.wrap(DimpBase._removeMouseEvents.bind(DimpBase));
\ No newline at end of file
+var DimpBase={bcache:$H(),lastrow:-1,mo_sidebar:{},pivotrow:-1,ppcache:{},ppfifo:[],showPreview:DIMP.conf.preview_pref,sfiltersfolder:$H({sf_all:"all",sf_current:"current"}),sfilters:$H({sf_msgall:"msgall",sf_from:"from",sf_to:"to",sf_subject:"subject"}),_select:function(C,A){var B=C.get("rownum");if(B.size()==1){this.lastrow=this.pivotrow=B.first()}this.toggleButtons();if($("previewPane").visible()){if(A.right){this.clearPreviewPane()}else{if(A.delay){(this.bcache.get("initPP")||this.bcache.set("initPP",this.initPreviewPane.bind(this))).delay(A.delay)}else{this.initPreviewPane()}}}},_deselect:function(D,B){var C=this.viewport.getSelected(),A=C.size();if(!A){this.lastrow=this.pivotrow=-1}this.toggleButtons();if(B.right||!A){this.clearPreviewPane()}else{if((A==1)&&$("previewPane").visible()){this.loadPreview(C.get("dataob").first())}}},msgSelect:function(G,C){var B,E=this.viewport.createSelection("domid",G),A=E.get("rownum").first(),D=this.isSelected("domid",G),F=this.selectedCount();this.lastrow=A;$("msgList_filter").blur();if(C.shift){if(F){if(!D||F!=1){B=[A,this.pivotrow];this.viewport.select($A($R(B.min(),B.max())),{range:true})}return}}else{if(C.ctrl){this.pivotrow=A;if(D){this.viewport.deselect(E,{right:C.right});return}else{if(C.right||F){this.viewport.select(E,{add:true,right:C.right});return}}}}this.viewport.select(E,{right:C.right})},selectAll:function(){this.viewport.select($A($R(1,this.viewport.getMetaData("total_rows"))),{range:true})},isSelected:function(B,A){return this.viewport.getSelected().contains(B,A)},selectedCount:function(){return(this.viewport)?this.viewport.getSelected().size():0},resetSelected:function(){if(this.viewport){this.viewport.deselect(this.viewport.getSelected(),{clearall:true})}this.toggleButtons();this.clearPreviewPane()},moveSelected:function(A,G){var E,D,F,B,C;if(G){if(!this.viewport.getMetaData("total_rows")){return}E=A}else{if(A==0){return}C=this.viewport.getSelected();switch(C.size()){case 0:E=this.viewport.currentOffset()+1;break;case 1:D=C.get("dataob").first();E=D.rownum+A;break;default:C=C.get("rownum");E=(A>0?C.max():C.min())+A;break}E=(A>0)?Math.min(E,this.viewport.getMetaData("total_rows")):Math.max(E,1)}F=this.viewport.createSelection("rownum",E);if(F.size()){B=F.get("dataob").first();if(!D||B.imapuid!=D.imapuid){this.viewport.scrollTo(B.rownum);this.viewport.select(F,{delay:0.3})}}else{this.offset=E;this.viewport.requestContentRefresh(E-1)}},go:function(E,B){var D,A,C;if(E.startsWith("compose:")){return}if(E.startsWith("msg:")){C=E.indexOf(":",4);A=E.substring(4,C);this.uid=E.substring(C+1);E="folder:"+A}if(E.startsWith("folder:")){A=E.substring(7);if(this.folder!=A||!$("dimpmain_folder").visible()){this.highlightSidebar(this.getFolderId(A));if(!$("dimpmain_folder").visible()){$("dimpmain_portal").hide();$("dimpmain_folder").show()}if(!Object.isUndefined(this.folder)){this._addHistory(E)}}this.loadFolder(A);return}this.folder=null;$("dimpmain_folder").hide();$("dimpmain_portal").update(DIMP.text.loading).show();if(E.startsWith("app:")){D=E.substr(4);if(D=="imp"){this.go("folder:INBOX");return}this.highlightSidebar("app"+D);this._addHistory(E,B);if(B){this.iframeContent(E,B)}else{if(DIMP.conf.app_urls[D]){this.iframeContent(E,DIMP.conf.app_urls[D])}}return}switch(E){case"portal":this.highlightSidebar("appportal");this._addHistory(E);DimpCore.setTitle(DIMP.text.portal);DimpCore.doAction("ShowPortal",{},null,this.bcache.get("portalC")||this.bcache.set("portalC",this._portalCallback.bind(this)));break;case"options":this.highlightSidebar("appoptions");this._addHistory(E);DimpCore.setTitle(DIMP.text.prefs);this.iframeContent(E,DIMP.conf.prefs_url);break}},_addHistory:function(B,A){if(Horde.dhtmlHistory.getCurrentLocation()!=B){Horde.dhtmlHistory.add(B,A)}},highlightSidebar:function(B){if($("foldersLoading").visible()){this.highlightSidebar.bind(this,B).defer();return}$("sidebarPanel").select(".on").invoke("removeClassName","on");var A=$(B);if(!A){return}if(!A.match("LI")){A=A.up();if(!A){return}}A.addClassName("on");A.ancestors().find(function(C){if(C.hasClassName("subfolders")){this._toggleSubFolder(C.id.substring(3),"exp")}else{return(C.id=="foldersSidebar")}},this)},iframeContent:function(B,D){if(B===null){B=D}var A=$("dimpmain_portal"),C;if(!A){DimpCore.showNotifications([{type:"horde.error",message:"Bad portal!"}]);return}C=new Element("IFRAME",{id:"iframe"+B,className:"iframe",frameBorder:0,src:D});this._resizeIE6Iframe(C);if(B=="options"){C.observe("load",function(){$("iframeoptions").contentWindow.document.getElementById("menu").style.display="none"})}A.insert(C)},msgWindow:function(B){this.updateUnseenUID(B,0);var A=DIMP.conf.message_url;A+=(A.include("?")?"&":"?")+$H({folder:B.view,uid:B.imapuid}).toQueryString();DimpCore.popupWindow(A,"msgview"+B.view+B.imapuid)},composeMailbox:function(A){var B=this.viewport.getSelected();if(!B.size()){return}B.get("dataob").each(function(C){DimpCore.compose(A,{folder:C.view,uid:C.imapuid})})},loadFolder:function(B,A){if(!this.viewport){this._createViewPort()}if(!A){this.resetSelected();if(this.folder==B){this.searchfilterClear(false);return}this.searchfilterClear(true);$("folderName").update(DIMP.text.loading);$("msgHeader").update();this.folderswitch=true;this.folder=B}this.viewport.loadView(B,{folder:B},this.uid?{imapuid:this.uid,view:B}:null,A)},_createViewPort:function(){var B=$("msgList_filter"),A=this.setMessageListTitle.bind(this);this.viewport=new ViewPort({content_container:"msgList",empty_container:"msgList_empty",error_container:"msgList_error",fetch_action:"ListMessages",template:this.message_list_template,buffer_pages:DIMP.conf.buffer_pages,limit_factor:DIMP.conf.limit_factor,viewport_wait:DIMP.conf.viewport_wait,show_split_pane:this.showPreview,split_pane:"previewPane",splitbar:"splitBar",content_class:"msglist",row_class:"msgRow",selected_class:"selectedRow",ajaxRequest:DimpCore.doAction.bind(DimpCore),norows:true,onScrollIdle:A,onSlide:A,onViewChange:function(){DimpCore.addGC(this.viewport.visibleRows())}.bind(this),onContent:function(F){var E,D,C=((this.viewport.getMetaData("sortby")==DIMP.conf.sortthread)&&this.viewport.getMetaData("thread"));if(this.viewport.isFiltering()){D=this.sfilters.get(this._getSearchfilterField()).capitalize();E=new RegExp("("+$F("msgList_filter")+")","i")}F.get("dataob").each(function(K){var H,I,G,J=$(K.domid);if(C&&C[K.imapuid]){H=J.down(".msgSubject");I=H.cloneNode(false);G=C[K.imapuid];$R(0,G.length,true).each(function(L){I.insert($($("thread_img_"+G.charAt(L)).cloneNode(false)).writeAttribute("id",""))});H.replace(I.insert(H.getText().escapeHTML()))}if(K.atc){J.down(".msgSize").insert({top:$($("atc_img_"+K.atc).cloneNode(false)).writeAttribute("id","")})}DimpCore.addMouseEvents({id:K.domid,type:K.menutype});if(D=="From"||D=="Subject"){H=J.down(".msg"+D);H.update(H.getText().escapeHTML().gsub(E,'<span class="searchMatch">#{1}</span>'))}},this);this.setMessageListTitle()}.bind(this),onComplete:function(){var E,C,D=this.viewport.getMetaData("label");if(this.uid){E=this.viewport.getViewportSelection().search({imapuid:{equal:[this.uid]},view:{equal:[this.folder]}});if(E.size()){this.viewport.scrollTo(E.get("rownum").first());this.viewport.select(E)}}else{if(this.offset){this.viewport.select(this.viewport.createSelection("rownum",this.offset))}}this.offset=this.uid=null;D=this.viewport.getMetaData("label");if(D){$("folderName").update(D)}if(this.folderswitch){this.folderswitch=false;if(this.folder==DIMP.conf.spam_folder){if(!DIMP.conf.spam_spamfolder&&DimpCore.buttons.indexOf("button_spam")!=-1){[$("button_spam").up(),$("ctx_message_spam")].invoke("hide")}if(DimpCore.buttons.indexOf("button_ham")!=-1){[$("button_ham").up(),$("ctx_message_ham")].invoke("show")}}else{if(DimpCore.buttons.indexOf("button_spam")!=-1){[$("button_spam").up(),$("ctx_message_spam")].invoke("show")}if(DimpCore.buttons.indexOf("button_ham")!=-1){if(DIMP.conf.ham_spamfolder){[$("button_ham").up(),$("ctx_message_ham")].invoke("hide")}else{[$("button_ham").up(),$("ctx_message_ham")].invoke("show")}}}}else{if(this.filtertoggle){if(this.filtertoggle==1&&this.viewport.getMetaData("sortby")==DIMP.conf.sortthread){C=DIMP.conf.sortdate}this.filtertoggle=0}}this.setSortColumns(C);if(this.viewport.isFiltering()){this.resetSelected()}else{this.setFolderLabel(this.folder,this.viewport.getMetaData("unseen")||0)}this.updateTitle()}.bind(this),onFetch:this.msgListLoading.bind(this,true),onEndFetch:this.msgListLoading.bind(this,false),onWait:function(){if($("dimpmain_folder").visible()){DimpCore.showNotifications([{type:"horde.warning",message:DIMP.text.listmsg_wait}])}},onFail:function(){if($("dimpmain_folder").visible()){DimpCore.showNotifications([{type:"horde.error",message:DIMP.text.listmsg_timeout}])}this.msgListLoading(false)}.bind(this),onFirstContent:function(){this.clearPreviewPane();$("msgList").observe("dblclick",this._handleMsgListDblclick.bindAsEventListener(this))}.bind(this),onClearRows:function(C){C.each(function(D){var E=$(D).down("div.msCheck");if(E){DimpCore.addGC(E)}if(D.id){DimpCore.removeMouseEvents(D)}})},onBeforeResize:function(){var C=this.viewport.getSelected();this.isvisible=(C.size()==1)&&(this.viewport.isVisible(C.get("rownum").first())==0)}.bind(this),onAfterResize:function(){if(this.isvisible){this.viewport.scrollTo(this.viewport.getSelected().get("rownum").first())}}.bind(this),selectCallback:this._select.bind(this),deselectCallback:this._deselect.bind(this)});if(!this.showPreview){$("msgList").addClassName("msglistNoPreview")}this.viewport.addFilter("ListMessages",this._addSearchfilterParams.bind(this));B.observe("keyup",this._searchfilterOnKeyup.bind(this));B.observe("focus",this._searchfilterOnFocus.bind(this));B.observe("blur",this._searchfilterOnBlur.bind(this));B.addClassName("msgFilterDefault")},_addMouseEvents:function(B,C){var A;switch(C.type){case"draft":case"message":new Drag(C.id,this._msgDragConfig);A=$(C.id).down("div.msCheck");if(A.visible()){A.observe("mousedown",this.bcache.get("handleMLC")||this.bcache.set("handleMLC",this._handleMsgListCheckbox.bindAsEventListener(this)));A.observe("contextmenu",Event.stop)}break;case"container":case"folder":new Drag(C.id,this._folderDragConfig);break;case"special":C.type="folder";break;case"vcontainer":case"virtual":$(C.id).observe("contextmenu",Event.stop);break}C.onShow=this.bcache.get("onMS")||this.bcache.set("onMS",this._onMenuShow.bind(this));B(C)},_removeMouseEvents:function(B,A){var C,D=$(A).readAttribute("id");if(D&&(C=DragDrop.Drags.get_drag(D))){C.destroy()}B(A)},_onMenuShow:function(A){var E,C,B,D;switch(A.ctx){case"ctx_folder":E=$("ctx_folder_create","ctx_folder_rename","ctx_folder_delete");C=DimpCore.DMenu.element();if(C.readAttribute("mbox")=="INBOX"){E.invoke("hide")}else{if(DIMP.conf.fixed_folders.indexOf(C.readAttribute("mbox"))!=-1){E.shift();E.invoke("hide")}else{E.invoke("show")}}if(C.hasAttribute("u")){$("ctx_folder_poll").hide();$("ctx_folder_nopoll").show()}else{$("ctx_folder_poll").show();$("ctx_folder_nopoll").hide()}break;case"ctx_message":[$("ctx_message_reply_list")].invoke(this.viewport.createSelection("domid",A.id).get("dataob").first().listmsg?"show":"hide");break;case"ctx_reply":D=this.viewport.getSelected();if(D.size()==1){B=D.get("dataob").first()}[$("ctx_reply_reply_list")].invoke(B&&B.listmsg?"show":"hide");break;case"ctx_otheractions":$("oa_seen","oa_unseen","oa_flagged","oa_clear","oa_sep1","oa_blacklist","oa_whitelist","oa_sep2").compact().invoke(this.viewport.getSelected().size()?"show":"hide");break}return true},_onResize:function(B,A){if(this.viewport){this.viewport.onResize(B,A)}this._resizeIE6()},_handleMsgListDblclick:function(B){var A=this._getMsgRow(B),C;if(!A){return}C=this.viewport.createSelection("domid",A.id).get("dataob").first();C.draft?DimpCore.compose("resume",{folder:C.view,uid:C.imapuid}):this.msgWindow(C);B.stop()},_handleMsgListCheckbox:function(B){var A=this._getMsgRow(B);if(!A){return}this.msgSelect(A.readAttribute("id"),{ctrl:true,right:true});B.stop()},_getMsgRow:function(A){A=A.element();if(A&&!A.hasClassName("msgRow")){A=A.up(".msgRow")}return A},updateTitle:function(){var B,A,C;if(this.viewport.isFiltering()){A=DIMP.text.search+" :: "+this.viewport.getMetaData("total_rows")+" "+DIMP.text.resfound}else{B=$(this.getFolderId(this.folder));if(B){C=B.readAttribute("u");A=B.readAttribute("l");if(C>0){A+=" ("+C+")"}}else{A=this.viewport.getMetaData("label")}}DimpCore.setTitle(A)},sort:function(D){if(this.viewport.getMetaData("sortlimit")){return}var B,C,A=D.element();if(!A.hasAttribute("sortby")){A=A.up("[sortby]");if(!A){return}}C=parseInt(A.readAttribute("sortby"),10);if(C==this.viewport.getMetaData("sortby")){B={sortdir:(this.viewport.getMetaData("sortdir")?0:1)};this.viewport.setMetaData({sortdir:B.sortdir})}else{B={sortby:C};this.viewport.setMetaData({sortby:B.sortby})}this.setSortColumns(C);this.viewport.reload(B)},setSortColumns:function(C){var B,A=$("msglistHeader");if(Object.isUndefined(C)){C=this.viewport.getMetaData("sortby")}B=A.down("small[sortby="+C+"]");if(B&&B.up().visible()){B.up(1).childElements().invoke("toggle")}B=A.down("div.msgFrom a");if((this.viewport.isFiltering()&&this.fspecial)||this.viewport.getMetaData("special")){B.hide().next().show()}else{B.show().next().hide()}B=A.down("div.msgSubject a");if(this.viewport.isFiltering()||this.viewport.getMetaData("nothread")||this.viewport.getMetaData("sortlimit")){B.show().next().hide();B.down().hide()}else{B.down().show()}A.childElements().invoke("removeClassName","sortup").invoke("removeClassName","sortdown");B=A.down("div a[sortby="+C+"]");if(B){B.up().addClassName(this.viewport.getMetaData("sortdir")?"sortup":"sortdown")}},togglePreviewPane:function(){this.showPreview=!this.showPreview;$("previewtoggle").setText(this.showPreview?DIMP.text.hide_preview:DIMP.text.show_preview);[$("msgList")].invoke(this.showPreview?"removeClassName":"addClassName","msglistNoPreview");new Ajax.Request(DimpCore.addSID(DIMP.conf.URI_PREFS),{parameters:{app:"imp",pref:"show_preview",value:this.showPreview?1:0}});this.viewport.showSplitPane(this.showPreview);if(this.showPreview){this.initPreviewPane()}},loadPreview:function(C,D){var A=$("previewPane"),B;if(!A.visible()){return}if(!D){if(this.pp&&this.pp==C){return}this.pp=C;if(this.ppfifo.indexOf(this.pp.vp_id)!=-1){return this._loadPreviewCallback(this.ppcache[this.pp.vp_id])}}B=A.positionedOffset();$("msgLoading").setStyle({position:"absolute",top:(B.top+10)+"px",left:(B.left+10)+"px"}).show();DimpCore.doAction("ShowPreview",D||{},this.viewport.createSelection("dataob",this.pp),this.bcache.get("loadPC")||this.bcache.set("loadPC",this._loadPreviewCallback.bind(this)))},_loadPreviewCallback:function(resp){var row,search,tmp,tmp2,pm=$("previewMsg"),r=resp.response,t=$("msgHeadersContent").down("THEAD");if(!r.error){search=this.viewport.getViewportSelection(r.view).search({vp_id:{equal:[r.uid]}});if(search.size()){row=search.get("dataob").first();this.updateUnseenUID(row,0)}}if(this.pp&&this.pp.vp_id!=r.uid){return}if(r.error||this.viewport.getSelected().size()!=1){if(r.error){DimpCore.showNotifications([{type:r.errortype,message:r.error}])}this.clearPreviewPane();return}this._expirePPCache([r.uid]);this.ppcache[r.uid]=resp;this.ppfifo.push(r.uid);DimpCore.removeAddressLinks(pm);DIMP.conf.msg_index=r.index;DIMP.conf.msg_folder=r.folder;tmp=pm.select(".subject");tmp.invoke("update",r.subject);switch(r.priority){case"high":case"low":tmp.invoke("insert",{top:$($(r.priority+"_priority_img").cloneNode(false)).writeAttribute("id",false)});break}$("msgHeadersColl").select(".date").invoke("update",r.minidate);$("msgHeaderDate").select(".date").invoke("update",r.fulldate);["from","to","cc"].each(function(a){if(r[a]){(a=="from"?pm.select("."+a):[t.down("."+a)]).each(function(elt){elt.replace(DimpCore.buildAddressLinks(r[a],elt.cloneNode(false)))})}[$("msgHeader"+a.capitalize())].invoke(r[a]?"show":"hide")});$("toggleHeaders").select(".attachmentImage").invoke(r.atc_label?"show":"hide");if(r.atc_label){tmp=$("msgAtc").show().down(".label");tmp2=$("partlist");tmp2.hide().previous().update(new Element("SPAN",{className:"atcLabel"}).insert(r.atc_label)).insert(r.atc_download);if(r.atc_list){$("partlist_col").show();$("partlist_exp").hide();tmp.down().hide().next().show();tmp2.update(r.atc_list)}else{tmp.down().show().next().hide()}}else{$("msgAtc").hide()}$("msgBody").down().update(r.msgtext);$("msgLoading","previewInfo").invoke("hide");$("previewPane").scrollTop=0;pm.show();if(r.js){eval(r.js.join(";"))}this._addHistory("msg:"+row.view+":"+row.imapuid)},initPreviewPane:function(){var A=this.viewport.getSelected();if(A.size()!=1){this.clearPreviewPane()}else{this.loadPreview(A.get("dataob").first())}},clearPreviewPane:function(){$("msgLoading","previewMsg").invoke("hide");$("previewInfo").show();this.pp=null},_expirePPCache:function(A){this.ppfifo=this.ppfifo.without(A);A.each(function(B){delete this.ppcache[B]},this);if(this.ppfifo.size()>20){delete this.ppcache[this.ppfifo.shift()]}},updateUnseenUID:function(B,E){var C,D,A;if(!B.bg){return false}A=B.bg.indexOf("unseen")!=-1;if((E&&A)||(!E&&!A)){return false}C=this.viewport.createSelection("dataob",B);D=parseInt($(this.getFolderId(B.view)).readAttribute("u"),10);if(E){this.viewport.updateFlag(C,"unseen",true);++D}else{this.viewport.updateFlag(C,"unseen",false);--D}this.updateUnseenStatus(B.view,D)},updateUnseenStatus:function(B,A){if(this.viewport){this.viewport.setMetaData({unseen:A},B)}this.setFolderLabel(B,A);if(this.folder==B){this.updateTitle()}},setMessageListTitle:function(){var B,A=this.viewport.getMetaData("total_rows");if(A>0){B=this.viewport.currentOffset();$("msgHeader").update(DIMP.text.messages+" "+(B+1)+" - "+(Math.min(B+this.viewport.getPageSize(),A))+" "+DIMP.text.of+" "+A)}else{$("msgHeader").update(DIMP.text.nomessages)}},setFolderLabel:function(B,C){var A,D=this.getFolderId(B);A=$(D);if(!A||!A.hasAttribute("u")){return}C=parseInt(C);A.writeAttribute("u",C);if(B=="INBOX"&&window.fluid){window.fluid.setDockBadge(C?C:"")}$(D+"_label").update((C>0)?new Element("STRONG").insert(A.readAttribute("l")).insert(" ").insert(new Element("SPAN",{className:"count",dir:"ltr"}).insert("("+C+")")):A.readAttribute("l"))},getFolderId:function(A){return"fld"+decodeURIComponent(A).replace(/_/g,"__").replace(/\W/g,"_")},getSubFolderId:function(A){return"sub"+A},pollFolders:function(){this.setPollFolders();var A={};if(this.folder&&$("dimpmain_folder").visible()){A=this.viewport.addRequestParams({})}$("checkmaillink").down("A").update("["+DIMP.text.check+"]");DimpCore.doAction("PollFolders",A,null,this.bcache.get("pollFC")||this.bcache.set("pollFC",this._pollFoldersCallback.bind(this)))},_pollFoldersCallback:function(B){var C,A;B=B.response;if(B.poll){A=this;$H(B.poll).each(function(D){A.updateUnseenStatus(D.key,D.value)})}if(B.quota){C=$("quota").cleanWhitespace();C.setText(B.quota.m);C.down("SPAN.used IMG").writeAttribute({width:99-B.quota.p})}$("checkmaillink").down("A").update(DIMP.text.getmail)},setPollFolders:function(){if(DIMP.conf.refresh_time){if(this.pollPE){this.pollPE.stop()}this.pollPE=new PeriodicalExecuter(this.pollFolders.bind(this),DIMP.conf.refresh_time)}},_portalCallback:function(B){if(B.response.linkTags){var A=$$("HEAD").first();B.response.linkTags.each(function(C){var D=new Element("LINK",{type:"text/css",rel:"stylesheet",href:C.href});if(C.media){D.media=C.media}A.insert(D)})}$("dimpmain_portal").update(B.response.portal);$("dimpmain_portal").select("h1.header a").each(this.bcache.get("portalClkLink")||this.bcache.set("portalClkLink",function(C){C.observe("click",function(D,E){this.go("app:"+E.readAttribute("app"));D.stop()}.bindAsEventListener(this,C))}.bind(this)))},_searchfilterOnKeyup:function(){if(this.searchobserve){clearTimeout(this.searchobserve)}this.searchobserve=(this.bcache.get("searchfilterR")||this.bcache.set("searchfilterR",this.searchfilterRun.bind(this))).delay(0.5)},searchfilterRun:function(){if(!this.viewport.isFiltering()){this.filtertoggle=1;this.fspecial=this.viewport.getMetaData("special")}this.viewport.runFilter($F("msgList_filter"))},_searchfilterOnFocus:function(){var A=$("qoptions").up();if($("msgList_filter").hasClassName("msgFilterDefault")){this._setFilterText(false)}if(!A.visible()){$("sf_current").update(this.viewport.getMetaData("label"));this._setSearchfilterParams(this.viewport.getMetaData("special")?"to":"from","msg");this._setSearchfilterParams("current","folder");$(document.documentElement).setStyle({overflowY:"hidden"});Effect.SlideDown(A,{duration:0.5,afterFinish:function(){this._onResize(false,true);$(document.documentElement).setStyle({overflowY:"auto"})}.bind(this)})}},_searchfilterOnBlur:function(){if(!$F("msgList_filter")){this._setFilterText(true)}},searchfilterClear:function(A){var B=$("qoptions").up();if(!B.visible()){return}if(this.searchobserve){clearTimeout(this.searchobserve);this.searchobserve=null}this._setFilterText(true);Effect.SlideUp(B,{duration:0.5,afterFinish:this._onResize.bind(this,A)});this.filtertoggle=2;this.resetSelected();this.viewport.stopFilter(A)},_setFilterText:function(B){var A=$("msgList_filter");if(B){A.setValue(DIMP.text.search);A.addClassName("msgFilterDefault")}else{A.setValue("");A.removeClassName("msgFilterDefault")}},_setSearchfilterParams:function(C,A){var B=(A=="folder")?this.sfiltersfolder:this.sfilters;B.keys().each(function(D){$(D).writeAttribute("className",(C==B.get(D))?"qselected":"")})},updateSearchfilter:function(B,A){this._setSearchfilterParams(B,A);if($F("msgList_filter")){this.viewport.runFilter()}},_addSearchfilterParams:function(){var A=this.sfiltersfolder.keys().find(function(B){return $(B).hasClassName("qselected")});return{searchfolder:this.sfiltersfolder.get(A),searchmsg:this.sfilters.get(this._getSearchfilterField())}},_getSearchfilterField:function(){return this.sfilters.keys().find(function(A){return $(A).hasClassName("qselected")})},toggleButtons:function(){var A=(this.selectedCount()==0);DimpCore.buttons.each(function(B){var C=$(B);if(C){[C.up()].invoke(A?"addClassName":"removeClassName","disabled");DimpCore.DMenu.disable(B+"_img",true,A)}})},_folderDropHandler:function(C,D,H){var G,F,E,B=C.readAttribute("mbox"),A=C.readAttribute("ftype");if(D.hasClassName("folder")){G=(C==$("dropbase"));if(G||(A!="special"&&!this.isSubfolder(D,C))){DimpCore.doAction("RenameFolder",{old_name:D.readAttribute("mbox"),new_parent:G?"":B,new_name:D.readAttribute("l")},null,this.bcache.get("folderC")||this.bcache.set("folderC",this._folderCallback.bind(this)))}}else{if(A!="container"){F=this.viewport.getSelected();if(F.size()){E=F}else{if(D.readAttribute("mbox")!=B){E=this.viewport.createSelection("domid",D.id)}}if(E.size()){if(H.ctrlKey){DimpCore.doAction("CopyMessage",this.viewport.addRequestParams({tofld:B}),E,this.bcache.get("pollFC")||this.bcache.set("pollFC",this._pollFoldersCallback.bind(this)))}else{if(this.folder!=B){this.viewport.updateFlag(E,"deletedmsg",true);DimpCore.doAction("MoveMessage",this.viewport.addRequestParams({tofld:B}),E,this.bcache.get("deleteC")||this.bcache.set("deleteC",this._deleteCallback.bind(this)))}}}}}},_dragCaption:function(){var A=this.selectedCount();return A+" "+(A==1?DIMP.text.message:DIMP.text.messages)},_keydownHandler:function(E){if(!$("dimpmain_folder").visible()||E.findElement("FORM")||RedBox.overlayVisible()){return}var H,G,B,F,D,A=E.keyCode||E.charCode,C=this.viewport.getSelected();switch(A){case Event.KEY_DELETE:case Event.KEY_BACKSPACE:if(C.size()==1){B=C.get("dataob").first();if(E.shiftKey){this.moveSelected(B.rownum+((B.rownum==this.viewport.getMetaData("total_rows"))?-1:1),true)}this.flag("deleted",B)}else{this.flag("deleted")}E.stop();break;case Event.KEY_UP:case Event.KEY_DOWN:if(E.shiftKey&&this.lastrow!=-1){F=this.viewport.createSelection("rownum",this.lastrow+((A==Event.KEY_UP)?-1:1));if(F.size()){F=F.get("dataob").first();this.viewport.scrollTo(F.rownum);this.msgSelect(F.domid,{shift:true})}}else{this.moveSelected(A==Event.KEY_UP?-1:1)}E.stop();break;case Event.KEY_PAGEUP:case Event.KEY_PAGEDOWN:if(!E.ctrlKey&&!E.shiftKey&&!E.altKey&&!E.metaKey){G=this.viewport.getPageSize()-1;move=G*(A==Event.KEY_PAGEUP?-1:1);if(C.size()==1){H=this.viewport.currentOffset();D=C.get("rownum").first()-1;switch(A){case Event.KEY_PAGEUP:if(H!=D){move=H-D}break;case Event.KEY_PAGEDOWN:if((H+G)!=D){move=H+G-D}break}}this.moveSelected(move);E.stop()}break;case Event.KEY_HOME:case Event.KEY_END:this.moveSelected(A==Event.KEY_HOME?1:this.viewport.getMetaData("total_rows"),true);E.stop();break;case Event.KEY_RETURN:if(!E.element().match("input")){if(C.size()==1){this.msgWindow(C.get("dataob").first())}}E.stop();break;case 65:case 97:if(E.ctrlKey){this.selectAll();E.stop()}break}},renameFolder:function(A){if(Object.isUndefined(A)){return}A=$(A);var B=this._createFolderForm(function(C){this._folderAction(A,C,"rename");return false}.bindAsEventListener(this),DIMP.text.rename_prompt);B.down("input").setValue(A.readAttribute("l"))},createBaseFolder:function(){this._createFolderForm(function(A){this._folderAction("",A,"create");return false}.bindAsEventListener(this),DIMP.text.create_prompt)},createSubFolder:function(A){if(Object.isUndefined(A)){return false}this._createFolderForm(function(B){this._folderAction($(A),B,"createsub");return false}.bindAsEventListener(this),DIMP.text.createsub_prompt)},_createFolderForm:function(A,B){var C=new Element("FORM",{action:"#",id:"RB_folder"}).insert(new Element("P").insert(B)).insert(new Element("INPUT",{type:"text",size:15})).insert(new Element("INPUT",{type:"button",className:"button",value:DIMP.text.ok}).observe("click",A)).insert(new Element("INPUT",{type:"button",className:"button",value:DIMP.text.cancel}).observe("click",this.bcache.get("closeRB")||this.bcache.set("closeRB",this._closeRedBox.bind(this)))).observe("keydown",function(D){if((D.keyCode||D.charCode)==Event.KEY_RETURN){D.stop();A(D)}});RedBox.overlay=true;RedBox.onDisplay=Form.focusFirstElement.curry(C);RedBox.showHtml(C);return C},_closeRedBox:function(){var A=RedBox.getWindowContents();DimpCore.addGC([A,A.descendants()].flatten());RedBox.close()},_folderAction:function(B,D,G){this._closeRedBox();var C,F,E,A=D.findElement("form");E=$F(A.down("input"));if(E){switch(G){case"rename":if(B.readAttribute("l")!=E){C="RenameFolder";F={old_name:B.readAttribute("mbox"),new_parent:B.up().hasClassName("folderlist")?"":B.up(1).previous().readAttribute("mbox"),new_name:E}}break;case"create":case"createsub":C="CreateFolder";F={folder:E};if(G=="createsub"){F.parent=B.readAttribute("mbox")}break}if(C){DimpCore.doAction(C,F,null,this.bcache.get("folderC")||this.bcache.set("folderC",this._folderCallback.bind(this)))}}},_folderCallback:function(A){A=A.response;if(A.d){A.d.each(this.bcache.get("deleteFolder")||this.bcache.set("deleteFolder",this.deleteFolder.bind(this)))}if(A.c){A.c.each(this.bcache.get("changeFolder")||this.bcache.set("changeFolder",this.changeFolder.bind(this)))}if(A.a){A.a.each(this.bcache.get("createFolder")||this.bcache.set("createFolder",this.createFolder.bind(this)))}},_deleteCallback:function(C){var A,B=[];this.msgListLoading(false);this._pollFoldersCallback(C);C=C.response;if(!C.uids||C.folder!=this.folder){return}$H(DimpCore.parseRangeString(C.uids)).each(function(D){D.value.each(function(E){B.push(E+D.key)})});A=this.viewport.getViewportSelection().search({vp_id:{equal:B}});if(A.size()){if(C.remove){this.viewport.remove(A,{cacheid:C.cacheid,noupdate:C.viewport});this._expirePPCache(A.get("uid"))}else{this.viewport.updateFlag(A,"deletedmsg",true)}}},_emptyFolderCallback:function(A){if(A.response.mbox){if(this.folder==A.response.mbox){this.viewport.reload();this.clearPreviewPane()}this.setFolderLabel(A.response.mbox,0)}},_flagAllCallback:function(A){if(A.response.mbox){this.setFolderLabel(A.response.mbox,A.response.u)}},_folderLoadCallback:function(B){this._folderCallback(B);var D=$("specialfolders","normalfolders").compact(),C=$("normalfolders"),A=C.getStyle("max-height");D.invoke("observe","click",this._handleFolderMouseEvent.bindAsEventListener(this,"click"));D.invoke("observe","mouseover",this._handleFolderMouseEvent.bindAsEventListener(this,"over"));if(DIMP.conf.is_ie6){D.invoke("observe","mouseout",this._handleFolderMouseEvent.bindAsEventListener(this,"out"))}$("foldersLoading").hide();$("foldersSidebar").show();if(A!==null||(Prototype.Browser.IE&&Object.isUndefined(A)&&(C.getStyle("height")=="0px"))){this._sizeFolderlist();Event.observe(window,"resize",this._sizeFolderlist.bind(this))}},_handleFolderMouseEvent:function(E,D){var C,B=E.element(),A=B.up(".folder")||B.up(".custom");if(!A){return}C=A.readAttribute("ftype");switch(D){case"over":if(DIMP.conf.is_ie6){A.addClassName("over")}if(C&&!this.mo_sidebar[A.id]){DimpCore.addMouseEvents({id:A.id,type:C});this.mo_sidebar[A.id]=1}break;case"out":A.removeClassName("over");break;case"click":if(B.hasClassName("exp")||B.hasClassName("col")){this._toggleSubFolder(A.id,"tog")}else{switch(C){case"container":case"vcontainer":E.stop();break;case"folder":case"special":case"virtual":E.stop();return this.go("folder:"+A.readAttribute("mbox"));break}}break}},_toggleSubFolder:function(C,D){C=$(C);var B={duration:0.2},A=$(this.getSubFolderId(C.id));if(A&&(D=="tog"||(D=="exp"&&!A.visible())||(D=="col"&&A.visible()))){if(C.descendantOf("specialfolders")){B.afterFinish=this._sizeFolderlist}C.firstDescendant().writeAttribute({className:A.visible()?"exp":"col"});if(A.visible()){Effect.BlindUp(A,B)}else{Effect.BlindDown(A,B)}}},createFolder:function(C){var B,F,I,G,H,E=this.getFolderId(C.m),A=decodeURIComponent(C.m),D=this.getSubFolderId(E),J=$(D);I=new Element("LI",{className:"folder",id:E,l:C.l,mbox:A,ftype:(C.v?(C.co?"vcontainer":"virtual"):(C.co?"container":(C.s?"special":"folder")))});B=new Element("DIV",{className:C.cl||"base",id:E+"_div"});if(C.i){B.update(C.i)}if(C.ch){B.writeAttribute({className:"exp"}).observe("mouseover",this.bcache.get("mo_folder")||this.bcache.set("mo_folder",function(K){K=K.element();if(DragDrop.Drags.drag&&K.hasClassName("exp")){this._toggleSubFolder(K.up(),"exp")}}.bindAsEventListener(this)))}I.insert(B).insert(new Element("A",{id:E+"_label",title:C.l}).insert(C.l));if(J){if(J.insert({before:I}).visible()){B.removeClassName("exp").addClassName("col")}}else{if(C.s){H=$("specialfolders")}else{H=$(this.getSubFolderId(this.getFolderId(C.pa)));H=(H)?H.down("UL"):$("normalfolders")}G=A.toLowerCase();F=H.childElements().find(function(K){var L=K.readAttribute("mbox");return L&&(!C.s||L!="INBOX")&&(G<L.toLowerCase())});if(F){F.insert({before:I})}else{H.insert(I)}if(C.ch){I.insert({after:new Element("LI",{className:"subfolders",id:D}).insert(new Element("UL")).hide()})}}if(!C.v){new Drop(I,this._folderDropConfig)}if(C.po){I.writeAttribute("u","");this.setFolderLabel(A,C.u)}},deleteFolder:function(A){var B=decodeURIComponent(A),C;if(this.folder==B){this.go("folder:INBOX")}C=this.getFolderId(A);this.deleteFolderElt(C,true);Effect.Fade(C,{afterFinish:function(D){try{DimpCore.addGC(D.element.remove())}catch(E){DimpCore.debug("deleteFolder",E)}}})},changeFolder:function(B){var D=this.getFolderId(B.m),A=$(D+"_div"),C=A&&A.hasClassName("col");this.deleteFolderElt(D,!B.ch);if(B.co&&this.folder==B.m){this.go("folder:INBOX")}$(D).remove();this.createFolder(B);if(B.ch&&C){A.removeClassName("exp").addClassName("col")}},deleteFolderElt:function(D,B){var C=$(D),A;DimpCore.addGC($(C,D+"_div",D+"_label"));if(B){A=$(this.getSubFolderId(D));if(A){A.remove()}}[DragDrop.Drags.get_drag(D),DragDrop.Drops.get_drop(D)].compact().invoke("destroy");DimpCore.removeMouseEvents(C);delete this.mo_sidebar[D];if(this.viewport){this.viewport.deleteView(D)}},_sizeFolderlist:function(){var A=$("normalfolders");A.setStyle({height:(document.viewport.getHeight()-A.cumulativeOffset()[1]-10)+"px"})},flag:function(F,D,E){var C,B,H,G=[],A=1;if(D){if(Object.isUndefined(E)){H=this.viewport.createSelection("dataob",D)}else{H=this.viewport.getViewportSelection().search({imapuid:{equal:[D]},view:{equal:[E]}});if(!H.size()&&E!=this.folder){H=this.viewport.getViewportSelection(E).search({imapuid:{equal:[D]}})}}}else{H=this.viewport.getSelected()}switch(F){case"allUnseen":case"allSeen":DimpCore.doAction((F=="allUnseen")?"MarkFolderUnseen":"MarkFolderSeen",{folder:E},null,this.bcache.get("flagAC")||this.bcache.set("flagAC",this._flagAllCallback.bind(this)));if(E==this.folder){this.viewport.updateFlag(this.createSelection("rownum",$A($R(1,this.viewport.getMetaData("total_rows")))),"unseen",F=="allUnseen")}break;case"deleted":case"undeleted":case"spam":case"ham":case"blacklist":case"whitelist":if(!H.size()){break}if(F=="deleted"){H=H.search({isdel:{not:[true]}});if(!H.size()){break}H.set({isdel:true})}B=this.viewport.addRequestParams({});if(F=="deleted"||F=="undeleted"){this.viewport.updateFlag(H,"deletedmsg",F=="deleted")}if(F=="undeleted"){DimpCore.doAction("UndeleteMessage",B,H)}else{C={deleted:"DeleteMessage",spam:"ReportSpam",ham:"ReportHam",blacklist:"Blacklist",whitelist:"Whitelist"};DimpCore.doAction(C[F],B,H,this.bcache.get("deleteC")||this.bcache.set("deleteC",this._deleteCallback.bind(this)),{asynchronous:!(D&&E)});if(F=="spam"||F=="ham"){this.msgListLoading(true)}}break;case"unseen":case"seen":if(!H.size()){break}B={folder:this.folder,messageFlag:"-\\seen"};if(F=="seen"){A=0;B.messageFlag="\\seen"}G=H.get("dataob");if(G.size()){G.each(function(I){this.updateUnseenUID(I,A)},this);DimpCore.doAction("MarkMessage",B,this.viewport.createSelection("dataob",G))}break;case"flagged":case"clear":if(!H.size()){break}B={folder:this.folder,messageFlag:((F=="flagged")?"\\flagged":"-\\flagged")};this.viewport.updateFlag(H,"flagged",F=="flagged");DimpCore.doAction("MarkMessage",B,H);break;case"answered":this.viewport.updateFlag(H,"answered",true);this.viewport.updateFlag(H,"flagged",false);break}},purgeDeleted:function(){DimpCore.doAction("PurgeDeleted",this.viewport.addRequestParams({}),null,this.bcache.get("deleteC")||this.bcache.set("deleteC",this._deleteCallback.bind(this)))},modifyPollFolder:function(A,B){DimpCore.doAction("ModifyPollFolder",{folder:A,add:(B)?1:0},null,this.bcache.get("modifyPFC")||this.bcache.set("modifyPFC",this._modifyPollFolderCallback.bind(this)))},_modifyPollFolderCallback:function(A){A=A.response;var B=A.folder,D,C={response:{poll:{}}};D=$(this.getFolderId(B));if(A.add){C.response.poll[B]=A.poll.u;D.writeAttribute("u",0)}else{C.response.poll[B]=0}this._pollFoldersCallback(C);if(!A.add){D.removeAttribute("u")}},msgListLoading:function(A){var B;if(this.fl_visible!=A){this.fl_visible=A;if(A){B=$("msgList").positionedOffset();$("folderLoading").setStyle({position:"absolute",top:(B.top+10)+"px",left:(B.left+10)+"px"});Effect.Appear("folderLoading",{duration:0.2});$(document.body).setStyle({cursor:"progress"})}else{Effect.Fade("folderLoading",{duration:0.2});$(document.body).setStyle({cursor:"default"})}}},isSubfolder:function(B,C){var A=$(this.getSubFolderId(B.readAttribute("id")));return A&&C.descendantOf(A)},_onLoad:function(){var B,D=DimpCore.clickObserveHandler,A=DimpCore.DMenu;if(Horde.dhtmlHistory.initialize()){Horde.dhtmlHistory.addListener(this.go.bind(this))}if(!Horde.dhtmlHistory.getCurrentLocation()){if(DIMP.conf.login_view=="inbox"){this.go("folder:INBOX")}else{this.go("portal");if(DIMP.conf.background_inbox){this.loadFolder("INBOX",true)}}}this._setFilterText(true);DimpCore.addPopdown("button_reply","reply");A.disable("button_reply_img",true,true);DimpCore.addPopdown("button_forward","forward");A.disable("button_forward_img",true,true);DimpCore.addPopdown("button_other","otheractions");B=$("logo");if(B.visible()){D({d:B.down("a"),f:this.go.bind(this,"portal")})}D({d:$("composelink"),f:DimpCore.compose.bind(DimpCore,"new")});D({d:$("checkmaillink"),f:this.pollFolders.bind(this)});["portal","options"].each(function(C){var E=$("app"+C);if(E){D({d:E,f:this.go.bind(this,C)})}},this);B=$("applogout");if(B){D({d:B,f:DimpCore.logout.bind(DimpCore)})}B=$("applicationfolders");if(B){B.select("li.custom a").each(function(C){D({d:C,f:this.go.bind(this,"app:"+C.readAttribute("app"))})},this)}D({d:$("newfolder"),f:this.createBaseFolder.bind(this)});new Drop("dropbase",this._folderDropConfig);B=$("hometab");if(B){D({d:B,f:this.go.bind(this,"portal")})}$("tabbar").select("a.applicationtab").each(function(C){D({d:C,f:this.go.bind(this,"app:"+C.readAttribute("app"))})},this);D({d:$("button_reply"),f:this.composeMailbox.bind(this,"reply"),ns:true});D({d:$("button_forward"),f:this.composeMailbox.bind(this,DIMP.conf.forward_default),ns:true});["spam","ham","deleted"].each(function(C){var E=$("button_"+C);if(E){D({d:E,f:this.flag.bind(this,C)})}},this);D({d:$("button_compose").down("A"),f:DimpCore.compose.bind(DimpCore,"new")});D({d:$("button_other"),f:function(C){A.trigger(C.findElement("A").next(),true)},p:true});D({d:$("qoptions").down(".qclose a"),f:this.searchfilterClear.bind(this,false)});["all","current"].each(function(C){var E=$("sf_"+C);if(E){D({d:E,f:this.updateSearchfilter.bind(this,C,"folder")})}},this);["msgall","from","to","subject"].each(function(C){D({d:$("sf_"+C),f:this.updateSearchfilter.bind(this,C,"msg")})},this);D({d:$("msglistHeader"),f:this.sort.bind(this),p:true});D({d:$("ctx_folder_create"),f:function(){this.createSubFolder(A.element())}.bind(this),ns:true});D({d:$("ctx_folder_rename"),f:function(){this.renameFolder(A.element())}.bind(this),ns:true});D({d:$("ctx_folder_empty"),f:function(){var C=A.element().readAttribute("mbox");A.close(true);if(window.confirm(DIMP.text.empty_folder)){DimpCore.doAction("EmptyFolder",{folder:C},null,this._emptyFolderCallback.bind(this))}}.bind(this),ns:true});D({d:$("ctx_folder_delete"),f:function(){var C=A.element().readAttribute("mbox");A.close(true);if(window.confirm(DIMP.text.delete_folder)){DimpCore.doAction("DeleteFolder",{folder:C},null,this.bcache.get("folderC")||this.bcache.set("folderC",this._folderCallback.bind(this)))}}.bind(this),ns:true});["ctx_folder_seen","ctx_folder_unseen"].each(function(C){D({d:$(C),f:function(E){this.flag(E,null,A.element().readAttribute("mbox"))}.bind(this,C=="ctx_folder_seen"?"allSeen":"allUnseen"),ns:true})},this);["ctx_folder_poll","ctx_folder_nopoll"].each(function(C){D({d:$(C),f:function(E){this.modifyPollFolder(A.element().readAttribute("mbox"),E)}.bind(this,C=="ctx_folder_poll"),ns:true})},this);D({d:$("ctx_container_create"),f:function(){this.createSubFolder(A.element())}.bind(this),ns:true});D({d:$("ctx_container_rename"),f:function(){this.renameFolder(A.element())}.bind(this),ns:true});["reply","reply_all","reply_list","forward_all","forward_body","forward_attachments"].each(function(C){D({d:$("ctx_message_"+C),f:this.composeMailbox.bind(this,C),ns:true})},this);["seen","unseen","flagged","clear","spam","ham","blacklist","whitelist","deleted","undeleted"].each(function(C){var E=$("ctx_message_"+C);if(E){D({d:E,f:this.flag.bind(this,C),ns:true})}},this);D({d:$("ctx_draft_resume"),f:this.composeMailbox.bind(this,"resume")});["flagged","clear","deleted","undeleted"].each(function(C){var E=$("ctx_draft_"+C);if(E){D({d:E,f:this.flag.bind(this,C),ns:true})}},this);["reply","reply_all","reply_list"].each(function(C){D({d:$("ctx_reply_"+C),f:this.composeMailbox.bind(this,C),ns:true})},this);["forward_all","forward_body","forward_attachments"].each(function(C){D({d:$("ctx_forward_"+C),f:this.composeMailbox.bind(this,C),ns:true})},this);D({d:$("previewtoggle"),f:this.togglePreviewPane.bind(this),ns:true});["seen","unseen","flagged","clear","blacklist","whitelist"].each(function(C){var E=$("oa_"+C);if(E){D({d:E,f:this.flag.bind(this,C),ns:true})}},this);D({d:$("oa_selectall"),f:this.selectAll.bind(this),ns:true});B=$("oa_purge_deleted");if(B){D({d:B,f:this.purgeDeleted.bind(this),ns:true})}$("toggleHeaders").select("A").each(function(C){D({d:C,f:function(){[C.up().select("A"),$("msgHeadersColl","msgHeaders")].flatten().invoke("toggle")},ns:true})});$("msg_newwin","msg_newwin_options").compact().each(function(C){D({d:C,f:function(){this.msgWindow(this.viewport.getViewportSelection().search({imapuid:{equal:[DIMP.conf.msg_index]},view:{equal:[DIMP.conf.msg_folder]}}).get("dataob").first())}.bind(this)})},this);DimpCore.messageOnLoad();this._resizeIE6()},_resizeIE6:function(){if(DIMP.conf.is_ie6){var A=parseInt($("sidebarPanel").getStyle("width"),10),B=document.viewport.getWidth()-A-30;$("normalfolders").setStyle({width:A+"px"});$("dimpmain").setStyle({width:B+"px"});$("msglist").setStyle({width:(B-5)+"px"});$("msgBody").setStyle({width:(B-25)+"px"});A=$("dimpmain_portal").down("IFRAME");if(A){this._resizeIE6Iframe(A)}}},_resizeIE6Iframe:function(A){if(DIMP.conf.is_ie6){A.setStyle({width:$("dimpmain").getStyle("width"),height:(document.viewport.getHeight()-20)+"px"})}}};DimpBase._msgDragConfig={scroll:"normalfolders",threshold:5,caption:DimpBase._dragCaption.bind(DimpBase),onStart:function(C,B){var A={right:B.isRightClick()},D=C.element.id;C.selectIfNoDrag=false;if(!A.right&&(B.ctrlKey||B.metaKey)){this.msgSelect(D,$H({ctrl:true}).merge(A).toObject())}else{if(B.shiftKey){this.msgSelect(D,$H({shift:true}).merge(A).toObject())}else{if(this.isSelected("domid",D)){if(!A.right&&this.selectedCount()){C.selectIfNoDrag=true}}else{this.msgSelect(D,A)}}}}.bind(DimpBase),onEnd:function(B,A){if(B.selectIfNoDrag&&!B.wasDragged){this.msgSelect(B.element.id,{right:A.isRightClick()})}}.bind(DimpBase)};DimpBase._folderDragConfig={ghosting:true,offset:{x:5,y:5},scroll:"normalfolders",threshold:5,onDrag:function(B,A){if(!B.wasDragged){$("newfolder").hide();$("dropbase").show();B.ghost.removeClassName("on")}},onEnd:function(B,A){if(B.wasDragged){$("newfolder").show();$("dropbase").hide()}}};DimpBase._folderDropConfig={hoverclass:"dragdrop",caption:function(D,E,F){var A,G=E.readAttribute("l"),C=D.readAttribute("ftype"),B=D.readAttribute("l");if(D==$("dropbase")){return DIMP.text.moveto.replace(/%s/,G).replace(/%s/,DIMP.text.baselevel)}else{A=(F.ctrlKey)?DIMP.text.copyto:DIMP.text.moveto;if(E.hasClassName("folder")){return(C!="special"&&!this.isSubfolder(E,D))?A.replace(/%s/,G).replace(/%s/,B):""}else{return C!="container"?A.replace(/%s/,this._dragCaption()).replace(/%s/,B):""}}}.bind(DimpBase),onDrop:DimpBase._folderDropHandler.bind(DimpBase)};document.observe("dom:loaded",function(){$("dimpLoading").hide();$("dimpPage").show();DimpCore.doAction("ListFolders",{},null,DimpBase._folderLoadCallback.bind(DimpBase));DimpBase._onLoad();if(!DIMP.conf.search_all){DimpBase.sfiltersfolder.unset("sf_all")}DimpBase.setPollFolders();document.observe("keydown",DimpBase._keydownHandler.bind(DimpBase));Event.observe(window,"resize",DimpBase._onResize.bind(DimpBase));if(DIMP.conf.is_ie6){document.observe("selectstart",Event.stop);$("dimpbarActions","serviceActions","applicationfolders").compact().invoke("select","LI").flatten().compact().each(function(A){A.observe("mouseover",A.addClassName.curry("over")).observe("mouseout",A.removeClassName.curry("over"))})}});DimpCore.onDoActionComplete=function(A){if(DimpBase.viewport&&A.response.viewport){DimpBase.viewport.ajaxResponse(A.response.viewport)}};DimpCore.addMouseEvents=DimpCore.addMouseEvents.wrap(DimpBase._addMouseEvents.bind(DimpBase));DimpCore.removeMouseEvents=DimpCore.removeMouseEvents.wrap(DimpBase._removeMouseEvents.bind(DimpBase));
\ No newline at end of file
-var frames={horde_main:true},DimpCore={acount:0,remove_gc:[],server_error:0,view_id:1,buttons:["button_reply","button_forward","button_spam","button_ham","button_deleted"],debug:function(A,B){if(!this.is_logout&&DIMP.conf.debug){alert(A+": "+(B instanceof Error?B.name+"-"+B.message:Object.inspect(B)))}},toRangeString:function(A){var B="";$H(A).each(function(F){if(!F.value.size()){return}var D=F.value.numericSort(),E=last=D.shift(),C=[];D.each(function(G){if(last+1==G){last=G}else{C.push(E+(last==E?"":(":"+last)));E=last=G}});C.push(E+(last==E?"":(":"+last)));B+="{"+F.key.length+"}"+F.key+C.join(",")});return B},parseRangeString:function(G){var E,B,C,F,A={},D=[];G=G.strip();while(!G.blank()){if(!G.startsWith("{")){break}C=G.indexOf("}");E=parseInt(G.substr(1,C-1));F=G.substr(C+1,E);C+=E+1;B=G.indexOf("{",C);if(B==-1){uidstr=G.substr(C);G=""}else{uidstr=G.substr(C,B-C);G=G.substr(B)}uidstr.split(",").each(function(I){var H=I.split(":");if(H.size()==1){D.push(parseInt(I,10))}else{D=D.concat($A($R(parseInt(H[0],10),parseInt(H[1],10))))}});A[F]=D}return A},doAction:function(D,E,C,F,B){var A={};if(!this.doActionOpts){this.doActionOpts={onException:function(G,H){this.debug("onException",H)}.bind(this),onFailure:function(G,H){this.debug("onFailure",G)}.bind(this)}}B=Object.extend(this.doActionOpts,B||{});E=$H(E);D=D.startsWith("*")?D.substring(1):DIMP.conf.URI_IMP+"/"+D;if(C){if(C.viewport_selection){C.get("dataob").each(function(G){if(!A[G.view]){A[G.view]=[]}A[G.view].push(G.imapuid)});C=A}E.set("uid",DimpCore.toRangeString(C))}if(DIMP.conf.SESSION_ID){E.update(DIMP.conf.SESSION_ID.toQueryParams())}B.parameters=E.toQueryString();B.onComplete=function(G,H){this.doActionComplete(G,F)}.bind(this);new Ajax.Request(D,B)},doActionComplete:function(C,E){this.inAjaxCallback=true;var A=false,B={};if(!C.responseText||!C.responseText.length){A=true}else{try{B=C.responseText.evalJSON(true)}catch(D){this.debug("doActionComplete",D);A=true}}if(!B.msgs){B.msgs=[]}if(A){if(++this.server_error==3){this.showNotifications([{type:"horde.error",message:DIMP.text.ajax_timeout}])}this.inAjaxCallback=false;return}if(B.response&&Object.isFunction(E)){if(DIMP.conf.debug){E(B)}else{try{E(B)}catch(D){}}}if(this.server_error>=3){B.msgs.push({type:"horde.success",message:DIMP.text.ajax_recover})}this.server_error=0;if(!B.msgs_noauto){this.showNotifications(B.msgs)}if(this.onDoActionComplete){this.onDoActionComplete(B)}this.inAjaxCallback=false},setTitle:function(A){document.title=DIMP.conf.name+" :: "+A},showNotifications:function(A){if(!A.size()||this.is_logout){return}A.find(function(D){switch(D.type){case"dimp.timeout":this.is_logout=true;this.redirect(DIMP.conf.timeout_url);return true;case"horde.error":case"horde.message":case"horde.success":case"horde.warning":case"imp.reply":case"imp.forward":case"imp.redirect":case"dimp.request":case"dimp.sticky":var H,I,K,E,J,F,G=$("alerts"),B=new Element("DIV",{className:D.type.replace(".","-")}),C=D.message;if(!G){G=new Element("DIV",{id:"alerts"});$(document.body).insert(G)}if($w("dimp.request dimp.sticky").indexOf(D.type)==-1){C=C.unescapeHTML().unescapeHTML()}G.insert(B.update(C));if(DIMP.conf.is_ie6){K=new Element("DIV",{className:"ie6alertsfix"}).clonePosition(B,{setLeft:false,setTop:false});H=K;K.insert(B.remove());G.insert(K)}else{H=B}I=Effect.Fade.bind(this,B,{duration:1.5,afterFinish:this.removeAlert.bind(this)});H.observe("click",I);if($w("horde.error dimp.request dimp.sticky").indexOf(D.type)==-1){I.delay(D.type=="horde.warning"?10:3)}if(D.type=="dimp.request"){J=function(){I();document.stopObserving("click",J)};document.observe("click",J)}if(F=$("alertslog")){switch(D.type){case"horde.error":E=DIMP.text.alog_error;break;case"horde.message":E=DIMP.text.alog_message;break;case"horde.success":E=DIMP.text.alog_success;break;case"horde.warning":E=DIMP.text.alog_warning;break}if(E){F=F.down("DIV UL");if(F.down().hasClassName("noalerts")){F.down().remove()}F.insert(new Element("LI").insert(new Element("P",{className:"label"}).insert(E)).insert(new Element("P",{className:"indent"}).insert(C).insert(new Element("SPAN",{className:"alertdate"}).insert("["+(new Date).toLocaleString()+"]"))))}}}},this)},toggleAlertsLog:function(){var A=$("alertsloglink").down("A"),C=$("alertslog").down("DIV"),B={duration:0.5};if(C.visible()){Effect.BlindUp(C,B);A.update(DIMP.text.showalog)}else{Effect.BlindDown(C,B);A.update(DIMP.text.hidealog)}},removeAlert:function(C){try{var A=$(C.element),B=A.up();if(B&&B.parentNode){this.addGC(A.remove());if(!B.childElements().size()&&B.hasClassName("ie6alertsfix")){this.addGC(B.remove())}}}catch(D){this.debug("removeAlert",D)}},compose:function(C,B){var A=DIMP.conf.compose_url;B=B||{};if(C){B.type=C}this.popupWindow(this.addURLParam(A,B),"compose"+new Date().getTime())},popupWindow:function(B,A){if(!(window.open(B,A.replace(/\W/g,"_"),"width="+DIMP.conf.popup_width+",height="+DIMP.conf.popup_height+",status=1,scrollbars=yes,resizable=yes"))){this.showNotifications([{type:"horde.warning",message:DIMP.text.popup_block}])}},closePopup:function(){if(this.inAjaxCallback){this.closePopup.bind(this).defer()}else{window.close()}},logout:function(){this.is_logout=true;this.redirect(DIMP.conf.URI_IMP+"/LogOut")},redirect:function(A){A=this.addSID(A);if(parent.frames.horde_main){parent.location=A}else{window.location=A}},addMouseEvents:function(A){this.DMenu.addElement(A.id,"ctx_"+A.type,A)},removeMouseEvents:function(A){this.DMenu.removeElement($(A).readAttribute("id"));this.addGC(A)},addPopdown:function(B,A){var C=$(B);C.insert({after:$($("popdown_img").cloneNode(false)).writeAttribute("id",B+"_img").show()});this.addMouseEvents({id:B+"_img",type:A,offset:C.up(),left:true})},buildAddressLinks:function(D,A){var E,C,B=D.size();if(B>15){C=$("largeaddrspan").cloneNode(true);A.insert(C);E=C.down(".dispaddrlist");C=C.down();this.clickObserveHandler({d:C,f:function(F){[F.down(),F.down(1),F.next()].invoke("toggle")}.curry(C)});C=C.down();C.setText(C.getText().replace("%d",B))}else{E=A}D.each(function(H,G){var F;if(H.raw){F=H.raw}else{F=new Element("A",{className:"address",id:"addr"+this.acount++,personal:H.personal,email:H.inner,address:H.address}).insert(H.display?H.display:H.address);F.observe("mouseover",function(){F.stopObserving("mouseover");this.addMouseEvents({id:F.id,type:"contacts",offset:F,left:true})}.bind(this))}E.insert(F);if(G+1!=B){E.insert(", ")}},this);return A},removeAddressLinks:function(A){[A.select(".address"),A.select(".largeaddrtoggle")].flatten().compact().each(this.removeMouseEvents.bind(this))},messageOnLoad:function(){var B=this.clickObserveHandler,A;if($("partlist")){B({d:$("partlist_col").up(),f:function(){$("partlist","partlist_col","partlist_exp").invoke("toggle")}})}if(A=$("msg_print")){B({d:A,f:function(){window.print()}})}if(A=$("msg_view_source")){B({d:A,f:function(){view(DimpCore.addSID(DIMP.conf.URI_VIEW)+"&index="+DIMP.conf.msg_index+"&mailbox="+DIMP.conf.msg_folder,DIMP.conf.msg_index+"|"+DIMP.conf.msg_folder)}})}B({d:$("ctx_contacts_new"),f:function(){this.compose("new",{to:this.DMenu.element().readAttribute("address")})}.bind(this),ns:true});B({d:$("ctx_contacts_add"),f:function(){this.doAction("AddContact",{name:this.DMenu.element().readAttribute("personal"),email:this.DMenu.element().readAttribute("email")},null,true)}.bind(this),ns:true});if($("alertslog")){B({d:$("alertsloglink"),f:this.toggleAlertsLog.bind(this)})}},addGC:function(A){this.remove_gc=this.remove_gc.concat(A)},clickObserveHandler:function(A){return A.d.observe("click",DimpCore._clickFunc.curry(A))},_clickFunc:function(B,A){B.p?B.f(A):B.f();if(!B.ns){A.stop()}},addSID:function(A){if(!DIMP.conf.SESSION_ID){return A}return this.addURLParam(A,DIMP.conf.SESSION_ID.toQueryParams())},addURLParam:function(A,C){var B=A.indexOf("?");if(B!=-1){C=$H(A.toQueryParams()).merge(C).toObject();A=A.substring(0,B)}return A+"?"+Object.toQueryString(C)}};if(typeof ContextSensitive!="undefined"){DimpCore.DMenu=new ContextSensitive()}document.observe("dom:loaded",function(){try{if(parent.opener&&parent.opener.location.host==window.location.host&&parent.opener.DimpCore){DIMP.baseWindow=parent.opener.DIMP.baseWindow||parent.opener}}catch(A){}if(!DIMP.conf.spam_reporting){DimpCore.buttons=DimpCore.buttons.without("button_spam")}if(!DIMP.conf.ham_reporting){DimpCore.buttons=DimpCore.buttons.without("button_ham")}new PeriodicalExecuter(function(){if(DimpCore.remove_gc.size()){try{$A(DimpCore.remove_gc.splice(0,75)).compact().invoke("stopObserving")}catch(B){DimpCore.debug("remove_gc[].stopObserving",B)}}},10)});Event.observe(window,"load",function(){DimpCore.window_load=true});Element.addMethods({setText:function(B,C){var A=0;$A(B.childNodes).each(function(D){if(D.nodeType==3){if(A++){Element.remove(D)}else{D.nodeValue=C}}});if(!A){$(B).insert(C)}},getText:function(B,A){var C="";$A(B.childNodes).each(function(D){if(D.nodeType==3){C+=D.nodeValue}else{if(A&&D.hasChildNodes()){C+=$(D).getText(true)}}});return C}});Object.extend(Array.prototype,{numericSort:function(){return this.sort(function(B,A){if(B>A){return 1}else{if(B<A){return-1}}return 0})}});Object.extend(String.prototype,{evalScripts:function(){var re=/function\s+([^\s(]+)/g;this.extractScripts().each(function(s){var func;eval(s);while(func=re.exec(s)){window[func[1]]=eval(func[1])}})}});function popup_imp(C,A,D,B){DimpCore.compose("new",B.toQueryParams().toObject())}function view(A,B){window.open(A,++DimpCore.view_id+B.replace(/\W/g,"_"),"menubar=yes,toolbar=no,location=no,status=no,scrollbars=yes,resizable=yes")};
\ No newline at end of file
+var frames={horde_main:true},DimpCore={acount:0,remove_gc:[],server_error:0,view_id:1,buttons:["button_reply","button_forward","button_spam","button_ham","button_deleted"],debug:function(A,B){if(!this.is_logout&&DIMP.conf.debug){alert(A+": "+(B instanceof Error?B.name+"-"+B.message:Object.inspect(B)))}},toRangeString:function(A){var B="";$H(A).each(function(F){if(!F.value.size()){return}var D=F.value.numericSort(),E=last=D.shift(),C=[];D.each(function(G){if(last+1==G){last=G}else{C.push(E+(last==E?"":(":"+last)));E=last=G}});C.push(E+(last==E?"":(":"+last)));B+="{"+F.key.length+"}"+F.key+C.join(",")});return B},parseRangeString:function(G){var E,B,C,F,A={},D=[];G=G.strip();while(!G.blank()){if(!G.startsWith("{")){break}C=G.indexOf("}");E=parseInt(G.substr(1,C-1));F=G.substr(C+1,E);C+=E+1;B=G.indexOf("{",C);if(B==-1){uidstr=G.substr(C);G=""}else{uidstr=G.substr(C,B-C);G=G.substr(B)}uidstr.split(",").each(function(I){var H=I.split(":");if(H.size()==1){D.push(parseInt(I,10))}else{D=D.concat($A($R(parseInt(H[0],10),parseInt(H[1],10))))}});A[F]=D}return A},doAction:function(D,E,C,F,B){var A={};if(!this.doActionOpts){this.doActionOpts={onException:function(G,H){this.debug("onException",H)}.bind(this),onFailure:function(G,H){this.debug("onFailure",G)}.bind(this)}}B=Object.extend(this.doActionOpts,B||{});E=$H(E);D=D.startsWith("*")?D.substring(1):DIMP.conf.URI_IMP+"/"+D;if(C){if(C.viewport_selection){C.get("dataob").each(function(G){if(!A[G.view]){A[G.view]=[]}A[G.view].push(G.imapuid)});C=A}E.set("uid",DimpCore.toRangeString(C))}if(DIMP.conf.SESSION_ID){E.update(DIMP.conf.SESSION_ID.toQueryParams())}B.parameters=E.toQueryString();B.onComplete=function(G,H){this.doActionComplete(G,F)}.bind(this);new Ajax.Request(D,B)},doActionComplete:function(C,E){this.inAjaxCallback=true;var A=false,B={};if(!C.responseText||!C.responseText.length){A=true}else{try{B=C.responseText.evalJSON(true)}catch(D){this.debug("doActionComplete",D);A=true}}if(!B.msgs){B.msgs=[]}if(A){if(++this.server_error==3){this.showNotifications([{type:"horde.error",message:DIMP.text.ajax_timeout}])}this.inAjaxCallback=false;return}if(B.response&&Object.isFunction(E)){if(DIMP.conf.debug){E(B)}else{try{E(B)}catch(D){}}}if(this.server_error>=3){B.msgs.push({type:"horde.success",message:DIMP.text.ajax_recover})}this.server_error=0;if(!B.msgs_noauto){this.showNotifications(B.msgs)}if(this.onDoActionComplete){this.onDoActionComplete(B)}this.inAjaxCallback=false},setTitle:function(A){document.title=DIMP.conf.name+" :: "+A},showNotifications:function(A){if(!A.size()||this.is_logout){return}A.find(function(D){switch(D.type){case"dimp.timeout":this.is_logout=true;this.redirect(DIMP.conf.timeout_url);return true;case"horde.error":case"horde.message":case"horde.success":case"horde.warning":case"imp.reply":case"imp.forward":case"imp.redirect":case"dimp.request":case"dimp.sticky":var H,I,K,E,J,F,G=$("alerts"),B=new Element("DIV",{className:D.type.replace(".","-")}),C=D.message;if(!G){G=new Element("DIV",{id:"alerts"});$(document.body).insert(G)}if($w("dimp.request dimp.sticky").indexOf(D.type)==-1){C=C.unescapeHTML().unescapeHTML()}G.insert(B.update(C));if(DIMP.conf.is_ie6){K=new Element("DIV",{className:"ie6alertsfix"}).clonePosition(B,{setLeft:false,setTop:false});H=K;K.insert(B.remove());G.insert(K)}else{H=B}I=Effect.Fade.bind(this,B,{duration:1.5,afterFinish:this.removeAlert.bind(this)});H.observe("click",I);if($w("horde.error dimp.request dimp.sticky").indexOf(D.type)==-1){I.delay(D.type=="horde.warning"?10:3)}if(D.type=="dimp.request"){J=function(){I();document.stopObserving("click",J)};document.observe("click",J)}if(F=$("alertslog")){switch(D.type){case"horde.error":E=DIMP.text.alog_error;break;case"horde.message":E=DIMP.text.alog_message;break;case"horde.success":E=DIMP.text.alog_success;break;case"horde.warning":E=DIMP.text.alog_warning;break}if(E){F=F.down("DIV UL");if(F.down().hasClassName("noalerts")){F.down().remove()}F.insert(new Element("LI").insert(new Element("P",{className:"label"}).insert(E)).insert(new Element("P",{className:"indent"}).insert(C).insert(new Element("SPAN",{className:"alertdate"}).insert("["+(new Date).toLocaleString()+"]"))))}}}},this)},toggleAlertsLog:function(){var A=$("alertsloglink").down("A"),C=$("alertslog").down("DIV"),B={duration:0.5};if(C.visible()){Effect.BlindUp(C,B);A.update(DIMP.text.showalog)}else{Effect.BlindDown(C,B);A.update(DIMP.text.hidealog)}},removeAlert:function(C){try{var A=$(C.element),B=A.up();if(B&&B.parentNode){this.addGC(A.remove());if(!B.childElements().size()&&B.hasClassName("ie6alertsfix")){this.addGC(B.remove())}}}catch(D){this.debug("removeAlert",D)}},compose:function(C,B){var A=DIMP.conf.compose_url;B=B||{};if(C){B.type=C}this.popupWindow(this.addURLParam(A,B),"compose"+new Date().getTime())},popupWindow:function(B,A){if(!(window.open(B,A.replace(/\W/g,"_"),"width="+DIMP.conf.popup_width+",height="+DIMP.conf.popup_height+",status=1,scrollbars=yes,resizable=yes"))){this.showNotifications([{type:"horde.warning",message:DIMP.text.popup_block}])}},closePopup:function(){if(this.inAjaxCallback){this.closePopup.bind(this).defer()}else{window.close()}},logout:function(){this.is_logout=true;this.redirect(DIMP.conf.URI_IMP+"/LogOut")},redirect:function(A){A=this.addSID(A);if(parent.frames.horde_main){parent.location=A}else{window.location=A}},addMouseEvents:function(A){this.DMenu.addElement(A.id,"ctx_"+A.type,A)},removeMouseEvents:function(A){this.DMenu.removeElement($(A).readAttribute("id"));this.addGC(A)},addPopdown:function(B,A){var C=$(B);C.insert({after:$($("popdown_img").cloneNode(false)).writeAttribute("id",B+"_img").show()});this.addMouseEvents({id:B+"_img",type:A,offset:C.up(),left:true})},buildAddressLinks:function(D,A){var E,C,B=D.size();if(B>15){C=$("largeaddrspan").cloneNode(true);A.insert(C);E=C.down(".dispaddrlist");C=C.down();this.clickObserveHandler({d:C,f:function(F){[F.down(),F.down(1),F.next()].invoke("toggle")}.curry(C)});C=C.down();C.setText(C.getText().replace("%d",B))}else{E=A}D.each(function(H,G){var F;if(H.raw){F=H.raw}else{F=new Element("A",{className:"address",id:"addr"+this.acount++,personal:H.personal,email:H.inner,address:H.address}).insert(H.display?H.display:H.address);F.observe("mouseover",function(){F.stopObserving("mouseover");this.addMouseEvents({id:F.id,type:"contacts",offset:F,left:true})}.bind(this))}E.insert(F);if(G+1!=B){E.insert(", ")}},this);return A},removeAddressLinks:function(A){[A.select(".address"),A.select(".largeaddrtoggle")].flatten().compact().each(this.removeMouseEvents.bind(this))},messageOnLoad:function(){var B=this.clickObserveHandler,A;if($("partlist")){B({d:$("partlist_col").up(),f:function(){$("partlist","partlist_col","partlist_exp").invoke("toggle")}})}if(A=$("msg_print")){B({d:A,f:function(){window.print()}})}if(A=$("msg_view_source")){B({d:A,f:function(){view(DimpCore.addSID(DIMP.conf.URI_VIEW)+"&index="+DIMP.conf.msg_index+"&mailbox="+DIMP.conf.msg_folder,DIMP.conf.msg_index+"|"+DIMP.conf.msg_folder)}})}B({d:$("ctx_contacts_new"),f:function(){this.compose("new",{to:this.DMenu.element().readAttribute("address")})}.bind(this),ns:true});B({d:$("ctx_contacts_add"),f:function(){this.doAction("AddContact",{name:this.DMenu.element().readAttribute("personal"),email:this.DMenu.element().readAttribute("email")},null,true)}.bind(this),ns:true});if($("alertslog")){B({d:$("alertsloglink"),f:this.toggleAlertsLog.bind(this)})}},addGC:function(A){this.remove_gc=this.remove_gc.concat(A)},clickObserveHandler:function(A){return A.d.observe("click",DimpCore._clickFunc.curry(A))},_clickFunc:function(B,A){B.p?B.f(A):B.f();if(!B.ns){A.stop()}},addSID:function(A){if(!DIMP.conf.SESSION_ID){return A}return this.addURLParam(A,DIMP.conf.SESSION_ID.toQueryParams())},addURLParam:function(A,C){var B=A.indexOf("?");if(B!=-1){C=$H(A.toQueryParams()).merge(C).toObject();A=A.substring(0,B)}return A+"?"+Object.toQueryString(C)},reloadMessage:function(A){if(typeof DimpFullmessage!="undefined"){window.location=this.addURLParam(document.location.href,A)}else{DimpBase.loadPreview(null,A)}}};if(typeof ContextSensitive!="undefined"){DimpCore.DMenu=new ContextSensitive()}document.observe("dom:loaded",function(){try{if(parent.opener&&parent.opener.location.host==window.location.host&&parent.opener.DimpCore){DIMP.baseWindow=parent.opener.DIMP.baseWindow||parent.opener}}catch(A){}if(!DIMP.conf.spam_reporting){DimpCore.buttons=DimpCore.buttons.without("button_spam")}if(!DIMP.conf.ham_reporting){DimpCore.buttons=DimpCore.buttons.without("button_ham")}new PeriodicalExecuter(function(){if(DimpCore.remove_gc.size()){try{$A(DimpCore.remove_gc.splice(0,75)).compact().invoke("stopObserving")}catch(B){DimpCore.debug("remove_gc[].stopObserving",B)}}},10)});Event.observe(window,"load",function(){DimpCore.window_load=true});Element.addMethods({setText:function(B,C){var A=0;$A(B.childNodes).each(function(D){if(D.nodeType==3){if(A++){Element.remove(D)}else{D.nodeValue=C}}});if(!A){$(B).insert(C)}},getText:function(B,A){var C="";$A(B.childNodes).each(function(D){if(D.nodeType==3){C+=D.nodeValue}else{if(A&&D.hasChildNodes()){C+=$(D).getText(true)}}});return C}});Object.extend(Array.prototype,{numericSort:function(){return this.sort(function(B,A){if(B>A){return 1}else{if(B<A){return-1}}return 0})}});Object.extend(String.prototype,{evalScripts:function(){var re=/function\s+([^\s(]+)/g;this.extractScripts().each(function(s){var func;eval(s);while(func=re.exec(s)){window[func[1]]=eval(func[1])}})}});function popup_imp(C,A,D,B){DimpCore.compose("new",B.toQueryParams().toObject())}function view(A,B){window.open(A,++DimpCore.view_id+B.replace(/\W/g,"_"),"menubar=yes,toolbar=no,location=no,status=no,scrollbars=yes,resizable=yes")};
\ No newline at end of file