/***
Code to support http://markmail.org.
Copyright 2007-2009 Mark Logic Corporation.  All Rights Reserved.
Version: 1267492188
***/

var help=null;var message=null;var results=null;var sidebar=null;var facets=null;var slide=null;var windowDims=null;var attachViewer=null;var shiftPress=false;var fold=null;var captcha=null;mm.globals.captureKeys=true;window.dhtmlHistory.create();mm.Search={};mm.Message={};mm.Search.Actions=function(container){var that=this;mm.Actions.call(this,container);var setLinkSave=MochiKit.DOM.getFirstElementByTagAndClassName("a","setlinksave",container);var setLinkInclude=MochiKit.DOM.getFirstElementByTagAndClassName("a","setlinkinc",container);var setLinkExclude=MochiKit.DOM.getFirstElementByTagAndClassName("a","setlinkexc",container);var closeButton=MochiKit.DOM.getFirstElementByTagAndClassName("div","close","searchactions");var loggedIn=function(){disconnect();MochiKit.Signal.connect(setLinkSave,"onclick",function(e){that.createSet(e,"create",{"q":results.getCurrentQuery()});});MochiKit.Signal.connect(setLinkInclude,"onclick",function(e){that.addQueryToSet(e,"include",undefined,results.getCurrentQuery());});MochiKit.Signal.connect(setLinkExclude,"onclick",function(e){that.addQueryToSet(e,"exclude",undefined,results.getCurrentQuery());});MochiKit.DOM.removeElementClass(setLinkSave,"loginrequired");MochiKit.DOM.removeElementClass(setLinkInclude,"loginrequired");MochiKit.DOM.removeElementClass(setLinkExclude,"loginrequired");};var loggedOut=function(){disconnect();mm.user.connect(setLinkSave,"login");mm.user.connect(setLinkInclude,"login");mm.user.connect(setLinkExclude,"login");MochiKit.DOM.addElementClass(setLinkSave,"loginrequired");MochiKit.DOM.addElementClass(setLinkInclude,"loginrequired");MochiKit.DOM.addElementClass(setLinkExclude,"loginrequired");};var disconnect=function(){MochiKit.Signal.disconnectAll(setLinkSave);MochiKit.Signal.disconnectAll(setLinkInclude);MochiKit.Signal.disconnectAll(setLinkExclude);};MochiKit.Signal.connect(closeButton,"onclick",that,"close");MochiKit.Signal.connect(window,"onlogin",loggedIn);if(mm.isLoggedIn){loggedIn();}
else{loggedOut();}};mm.Search.Actions.prototype=new mm.Actions();mm.Search.Actions.prototype.constructor=mm.Search.Actions;var scrollOverflowToElement=function(elementToScroll,elementToScrollTo){var position=MochiKit.Style.getElementPosition(elementToScrollTo).y;var height=MochiKit.Style.getElementDimensions(elementToScrollTo).h;var parentPosition=MochiKit.Style.getElementPosition(elementToScroll).y;var parentHeight=MochiKit.Style.getElementDimensions(elementToScroll).h;position=position-parentPosition+elementToScroll.scrollTop;if(position+height>parentHeight+elementToScroll.scrollTop){elementToScroll.scrollTop=position+height-parentHeight+2;}
if(elementToScroll.scrollTop>position){elementToScroll.scrollTop=position-2;}};var htmlAlize=function(node){var children=node.childNodes;var htmlChildren=[];for(var i=0;i<children.length;i+=1){if(children[i].nodeName==="#text"){var str=children[i].nodeValue;str=str.replace(/\n/g,"\r");htmlChildren.push(str);}
else{htmlChildren.push(htmlAlize(children[i]));}}
var attribs={};if(node.getAttribute('href')){attribs.href=node.getAttribute('href');}
if(node.getAttribute('src')){attribs.src=node.getAttribute('src');}
if(node.getAttribute('onclick')){attribs.onclick=node.getAttribute('onclick');}
if(node.getAttribute('id')){attribs.id=node.getAttribute('id');}
if(node.getAttribute('class')){attribs['class']=node.getAttribute('class');}
if(node.getAttribute('style')){attribs.style=node.getAttribute('style');}
if(node.getAttribute('title')){attribs.title=node.getAttribute('title');}
if(node.getAttribute('value')){attribs.value=node.getAttribute('value');}
if(node.getAttribute('type')){attribs.type=node.getAttribute('type');}
return MochiKit.DOM.createDOM(node.nodeName.toUpperCase(),attribs,htmlChildren);};var createFragment=function(){var bits=[];if(results){bits.push("query:"+MochiKit.Base.urlEncode(results.getCurrentQuery()));bits.push("page:"+results.getCurrentPage());}
if(message&&message.getCurrentMessageId()){bits.push("mid:"+message.getCurrentMessageId());}
if(slide){bits.push("state:"+slide.getState());}
return bits.join("+");};var parseFragment=function(fragment){var args={};args.query=mm.url.q;args.mid=mm.url.id;args.page=1;if(fragment){var bits=fragment.split("+");for(var i=0;i<bits.length;i+=1){var arg=bits[i].split(":");args[arg[0]]=unescape(arg[1]);}}
return args;};var getCurrentArgs=function(){var curArgs={};if(results){curArgs.query=results.getCurrentQuery();curArgs.page=results.getCurrentPage();}
if(message&&message.getCurrentMessageId()){curArgs.mid=message.getCurrentMessageId();}
if(slide){curArgs.state=slide.getState();}
return curArgs;};var historyListener=function(newLocation,historyData){var args=parseFragment(newLocation);var curArgs=getCurrentArgs();if(facets&&args.query!==curArgs.query){facets.update(args.query);}
if(results&&(args.query!==curArgs.query||parseInt(args.page,10)!==parseInt(curArgs.page,10))){results.fetch(args.query,args.page);}
if(args.mid&&args.mid!==curArgs.mid){message.show(args.mid,args.query,true);}
if(!args.mid&&curArgs.mid){message.clear();}
if(args.state!==curArgs.state&&mm.view!=="message"){if(!args.state){if(args.message&&curArgs.state==="facets"){slide.slideLeft();}
else if(curArgs.state==="results"){slide.slideRight();}}
else if(args.state==="facets"){if(attachViewer&&attachViewer.isOpen()){attachViewer.hide();}
slide.slideRight();}
else if(args.state==="results"){slide.slideLeft();}}
if(sidebar){sidebar.update();}};var setDims=function(){windowDims=MochiKit.Style.getViewportDimensions();var canvas=MochiKit.DOM.getElement("window");var sidebarWidth=120;var minWidth=1024-sidebarWidth;if(windowDims.w<minWidth){canvas.style.width=minWidth+"px";}
else{canvas.style.width=windowDims.w+"px";}
windowDims=MochiKit.Style.getViewportDimensions();var main=MochiKit.DOM.getElement("main");var footerDims=MochiKit.Style.getElementDimensions("footer");var footerHeight=footerDims?footerDims.h:0;var mainPos=MochiKit.Style.getElementPosition(main);main.style.height=(windowDims.h-Math.ceil(mainPos.y)-footerHeight)+"px";slide.juggle();facets.setHeight();results.setHeight();message.setHeight();if(attachViewer!==null&&attachViewer.isOpen()){attachViewer.position();}};var Captcha=function(params){var that=this;var challenge="";var captchaing=false;var close=MochiKit.DOM.SPAN({"class":"close"},MochiKit.DOM.IMG({"src":"/images/close.gif","alt":"Close","title":"Close"}));var image=MochiKit.DOM.IMG();var status=MochiKit.DOM.DIV({"class":"message"},"Type the two words:");var input=MochiKit.DOM.INPUT({"type":"text","class":"answer"});var submit=MochiKit.DOM.INPUT({"type":"submit","class":"submit","value":"Submit"});var again=MochiKit.DOM.INPUT({"type":"submit","class":"again","value":"Beats Me"});image.src="/images/loading.gif";var container=MochiKit.DOM.DIV({"id":"captcha"},MochiKit.DOM.DIV({"class":"shaddow1"},MochiKit.DOM.DIV({"class":"shadow2"},MochiKit.DOM.DIV({"class":"label"},close),MochiKit.DOM.DIV({"class":"values"},MochiKit.DOM.DIV({"class":"imageparent"},image),status,MochiKit.DOM.FORM({"onsubmit":"return false;"},input,submit,again)))));MochiKit.DOM.appendChildNodes(MochiKit.DOM.getElement("header").parentNode,container);this.connect=function(parent){var emails=MochiKit.DOM.getElementsByTagAndClassName("a","email",parent);for(var i=0;i<emails.length;i+=1){MochiKit.Signal.connect(emails[i],"onclick",this,"newFromEvent");}};this.newFromEvent=function(event){var windowDims=MochiKit.Style.getViewportDimensions();var loc=MochiKit.Style.getElementPosition(event.src());var x=loc.x-150;var y=loc.y-120;if(loc.x<150){x=5;}
if(loc.y<120){y=5;}
if(loc.x>windowDims.w-160){x=windowDims.w-165;}
mm.layer.push(this,["facets"]);newCaptcha(x,y);};this.submit=function(){var req=MochiKit.Async.doSimpleXMLHttpRequest("/captcha/check.xqy",{"response":input.value,"challenge":challenge,"mid":message.getCurrentMessageId()});req.addCallback(function(retval){var success=(retval.responseText.indexOf("true")===0);if(success){mm.logger.logEvent("message","captcha",message.getCurrentMessageId());hide();_gaq.push(['_trackEvent','message','captcha success']);if(params.onsuccess){params.onsuccess.call();}}
else{newCaptcha();status.innerHTML="Oops, try again";window.setTimeout(function(){status.innerHTML="Type the two words:";},2000);_gaq.push(['_trackEvent','message','captcha failed']);if(params.onfailure){params.onfailure.call();}}});req.addErrback(function(obj){MochiKit.Logging.log(obj);});};this.cancel=function(){hide();};this.hasFocus=function(){return captchaing;};var newCaptcha=function(x,y){image.src="/images/loading.gif";show(x,y);var req=MochiKit.Async.doSimpleXMLHttpRequest("/captcha/challenge.xqy");req.addCallback(function(retVal){challenge=retVal.responseText;var newImage=MochiKit.DOM.IMG({"src":"http://api.recaptcha.net/image?c="+challenge});MochiKit.DOM.swapDOM(image,newImage);image=newImage;});req.addErrback(function(obj){MochiKit.Logging.log(obj);});};var show=function(x,y){if(x){container.style.left=x+"px";}
if(y){container.style.top=y+"px";}
captchaing=true;input.value="";container.style.display="block";input.focus();};var hide=function(){if(container.style.display==="block"){captchaing=false;image.src="/images/loading.gif";container.style.display="none";mm.layer.pop();}};mm.layer.register("captcha",this);MochiKit.Signal.connect(close,"onclick",hide);MochiKit.Signal.connect(submit,"onclick",this,"submit");MochiKit.Signal.connect(again,"onclick",function(){newCaptcha();});};var Slide=function(){var that=this;var please=MochiKit.DOM.getElement("please");var leftSlider=MochiKit.DOM.getElement("slideleft");var rightSlider=MochiKit.DOM.getElement("slideright");var state="facets";this.slideLeft=function(){if(state==="facets"&&!this.canShowAll()){message.setWidth(windowDims.w-results.getContentWidth()-sidebar.getWidth());hideFacets(facets.getWidth(),0,false);rightSlider.style.visibility="hidden";leftSlider.style.visibility="visible";}
state="results";};this.slideRight=function(){if((state==="results"||state==="message")&&!this.canShowAll()){showFacets(facets.getWidth());rightSlider.style.visibility="visible";leftSlider.style.visibility="hidden";}
state="facets";};this.canShowAll=function(){var totalWidth=facets.getWidth()+results.getContentWidth()+message.getOriginalWidth()+sidebar.getWidth();return windowDims.w>totalWidth;};this.juggle=function(){if(mm.view==="message"&&mm.refer&&mm.refer.engine){results.display();results.setHeight();results.fetch(mm.url.q,1,undefined,true,mm.url.id);results.setColumnWidth(results.getContentWidth());message.setWidth(windowDims.w-results.getColumnWidth()-sidebar.getWidth());state="message";return;}
if((!mm.url.q||mm.url.q==="")&&mm.url.id||mm.view==="message"){message.setWidth(windowDims.w-sidebar.getWidth());state="message";rightSlider.style.visibility="hidden";leftSlider.style.visibility="hidden";return;}
if(this.canShowAll()){results.setColumnWidth(results.getContentWidth());please.style.marginLeft="0px";message.setWidth(windowDims.w-facets.getWidth()-results.getColumnWidth()-sidebar.getWidth());rightSlider.style.visibility="hidden";leftSlider.style.visibility="hidden";}
else{if(state==="facets"){message.resetWidth();var x=windowDims.w-facets.getWidth()-sidebar.getWidth();if(x<450)x=450;results.setColumnWidth(450);rightSlider.style.visibility="hidden";leftSlider.style.visibility="hidden";}
else if(state==="results"){results.setColumnWidth(results.getContentWidth());hideFacets(facets.getWidth(),facets.getWidth(),true);message.setWidth(windowDims.w-results.getColumnWidth()-sidebar.getWidth());rightSlider.style.visibility="hidden";leftSlider.style.visibility="visible";}}
if(mm.url.id&&mm.url.id!==""&&!this.canShowAll()){hideFacets(facets.getWidth(),facets.getWidth(),true);message.setWidth(windowDims.w-results.getColumnWidth()-sidebar.getWidth());state="results";rightSlider.style.visibility="hidden";leftSlider.style.visibility="visible";}};this.getState=function(){return state;};var hideFacets=function(target,progress,promptly){var columnWidth=results.getColumnWidth();var contentWidth=results.getContentWidth();var reduce=120;if(shiftPress){reduce=10;}
if(promptly){please.style.marginLeft=0-target+"px";results.setColumnWidth(contentWidth);return;}
if(target-progress<reduce||target-progress<0){please.style.marginLeft=0-target+"px";if(columnWidth-contentWidth<reduce||columnWidth-contentWidth<0){results.setColumnWidth(contentWidth);}
else{results.setColumnWidth(columnWidth-reduce);window.setTimeout(function(){hideFacets(target,target,false);},1);}}
else{please.style.marginLeft=0-progress-reduce+"px";window.setTimeout(function(){hideFacets(target,progress+reduce,false);},1);}};var showFacets=function(progress){var reduce=120;if(shiftPress){reduce=10;}
if(progress<reduce||progress<0){please.style.marginLeft="0px";var columnWidth=results.getColumnWidth();var contentWidth=results.getContentWidth();var goal=windowDims.w-facets.getWidth();if(goal-columnWidth<reduce){results.setColumnWidth(goal);}
else{results.setColumnWidth(columnWidth+reduce);window.setTimeout(function(){showFacets(progress);},1);}}
else{please.style.marginLeft=0-progress+reduce+"px";window.setTimeout(function(){showFacets(progress-reduce);},1);}};MochiKit.Signal.connect(leftSlider,"onclick",function(event){that.slideRight(event);dhtmlHistory.add(createFragment());});MochiKit.Signal.connect(rightSlider,"onclick",function(event){that.slideLeft(event);dhtmlHistory.add(createFragment());});};var Facets=function(){var that=this;var facetscol=MochiKit.DOM.getElement("facetscol");var container=MochiKit.DOM.getElement("facets");var matrix=MochiKit.DOM.getElement("matrix");var dateHeight=MochiKit.Style.getElementDimensions("dateholder").h;var lists=MochiKit.DOM.getElement("lists");var senders=MochiKit.DOM.getElement("senders");var extensions=MochiKit.DOM.getElement("extensions");var types=MochiKit.DOM.getElement("types");var dateMessage=MochiKit.DOM.getElement("cleardates");var dateDiv;var overflowHidden=false;var disableMessageLink;var curQuery=mm.url.q;var prevDatesFromFlash="";var prevLoadStatFromFlash="";var facetWindow=new mm.Overlay("facetdetail");this.setHeight=function(){var mainHeight=MochiKit.Style.getElementDimensions("main").h;facetscol.style.height=mainHeight+"px";var matrixHeight=mainHeight-dateHeight-5;matrix.style.height=matrixHeight+"px";var rows=MochiKit.DOM.getElementsByTagAndClassName("tr","matrixrow",matrix);var cellHeight=(matrixHeight/2)-10;rows[0].style.height=cellHeight+"px";rows[1].style.height=cellHeight+"px";var origHeight=0;var canShow;var valueHeight=cellHeight-31;var valueDivs=MochiKit.DOM.getElementsByTagAndClassName("div","values",matrix);for(var i=0;i<valueDivs.length;i+=1){valueDivs[i].style.height="auto";origHeight=MochiKit.Style.getElementDimensions(valueDivs[i]).h;rows=MochiKit.DOM.getElementsByTagAndClassName("tr",null,valueDivs[i]);if(origHeight>valueHeight){valueDivs[i].style.height=valueHeight+"px";rowHeight=(origHeight)/rows.length;canShow=Math.floor((valueHeight-5)/rowHeight)+1;}
else{canShow=rows.length;}
var more=MochiKit.DOM.getFirstElementByTagAndClassName("div","fmore",valueDivs[i].parentNode);if(canShow<rows.length||rows.length===25){more.style.display="block";}
else{more.style.display="none";}
for(var j=0;j<rows.length;j+=1){if(j<canShow){rows[j].style.visibility="visible";}
else{rows[j].style.visibility="hidden";}}}};this.getHeight=function(){return MochiKit.Style.getElementDimensions(facetscol).h;};this.setWidth=function(width){facetscol.style.width=width+"px";};this.getWidth=function(){return MochiKit.Style.getElementDimensions(facetscol).w;};this.update=function(query,resultObject,skipGraph){curQuery=query
if(captcha){captcha.cancel();}
disconnect();if(dateDiv&&!skipGraph){writeGraph(query);}
if(resultObject){resultObject.resetHighlighting();resultObject.fetch(query,1);}
var req=MochiKit.Async.loadJSONDoc("/facets.xqy",{"q":query,"mode":"json"});req.addCallback(function(json){if(resultObject){dhtmlHistory.add(createFragment());}
mm.url.querySansDate=json.facets.query_sans_dates;updateFacet(json,lists);updateFacet(json,senders);updateFacet(json,extensions);updateFacet(json,types);});req.addErrback(function(obj){MochiKit.Logging.log(obj);});};this.showOverflow=function(){dateDiv.style.visibility="visible";overflowHidden=false;};this.hideOverflow=function(){dateDiv.style.visibility="hidden";overflowHidden=true;};this.isOverflowHidden=function(){return overflowHidden;};this.updateSelectionMessage=function(allSelected){if(allSelected=="true"){dateMessage.innerHTML="(Swipe to refine by date)";dateMessage.className="";disableMessageLink=true;}
else{dateMessage.innerHTML="Remove date refinements";dateMessage.className="hoverdateclear";disableMessageLink=false;}};this.clearDates=function(){if(!disableMessageLink){dateDiv.SetVariable("/jsWatchObject:reset","true");if(mm.url.querySansDate){this.update(mm.url.querySansDate,results,true);}
else{this.update("",results,true);}
this.updateSelectionMessage("true");}};this.graphLoaded=function(){if(dateDiv){this.updateSelectionMessage(dateDiv.GetVariable('_root.allSelected'));}};this.setDateRange=function(dateString){this.updateSelectionMessage(dateDiv.GetVariable('_root.allSelected'));if(mm.url.querySansDate){this.update(mm.url.querySansDate+" "+dateString,results,true);}
else{this.update(dateString,results,true);}};var updateFacet=function(json,facet){var facetValue=MochiKit.DOM.getFirstElementByTagAndClassName("div","values",facet);facetValue.innerHTML="";if(json.facets[facet.id]){var tbody=MochiKit.DOM.TBODY({});for(var i=0;i<json.facets[facet.id].item.length;i+=1){var row=null;var rowClass="";if(i%2){rowClass="even";}
if(json.facets[facet.id].item[i].added==="true"){rowClass="selected";var nameAttrs={};var hrefAttrs={"href":json.facets[facet.id].item[i].url,"class":"connect","onclick":"return false"};if(json.facets[facet.id].item[i].title){nameAttrs.title=hrefAttrs.title=json.facets[facet.id].item[i].title;}
row=MochiKit.DOM.TR({"class":rowClass},MochiKit.DOM.TD(nameAttrs,json.facets[facet.id].item[i].name),MochiKit.DOM.TD({"class":"remove"},MochiKit.DOM.A(hrefAttrs,MochiKit.DOM.IMG({"src":"/images/remove_filter.gif","alt":"Remove Filter","title":"Remove Filter"}))));}
else{var anchor=MochiKit.DOM.A({"href":json.facets[facet.id].item[i].url,"class":"connect","onclick":"return false"},json.facets[facet.id].item[i].name);if(json.facets[facet.id].item[i].title){anchor.title=json.facets[facet.id].item[i].title;}
row=MochiKit.DOM.TR({"class":rowClass},MochiKit.DOM.TD({},anchor),MochiKit.DOM.TD({"class":"count"},json.facets[facet.id].item[i].value));}
MochiKit.DOM.appendChildNodes(tbody,row);}
var table=MochiKit.DOM.TABLE({"class":"facetlist"},tbody);MochiKit.DOM.appendChildNodes(facetValue,table);}
else{MochiKit.DOM.appendChildNodes(facetValue,MochiKit.DOM.DIV({"class":"empty"},"None"));}
that.setHeight();connectToLinks(facet);};var connectToLinks=function(insideElement){var links=MochiKit.DOM.getElementsByTagAndClassName("a","connect",insideElement);for(var i=0;i<links.length;i+=1){var l=links[i];MochiKit.Signal.connect(l,"onclick",function(event){var link=mm.parseURL(event.src().href);that.update(link.url.q,results);var t=event.target().innerText||event.target().textContent;if(t==null||t=='')t="Remove Filter";_gaq.push(['_trackEvent','facet',insideElement.id,t]);});}};var disconnect=function(){var links=MochiKit.DOM.getElementsByTagAndClassName("a","connect",container);for(var i=0;i<links.length;i+=1){MochiKit.Signal.disconnectAll(links[i]);}};this.openFacetDetail=function(type){_gaq.push(['_trackEvent','open facet detail',type,curQuery]);facetWindow.open(function(){if(type==="lists"){facetWindow.setTitleFromString("What List?");}
else if(type==="senders"){facetWindow.setTitleFromString("Who Sent It?");}
else if(type==="extensions"){facetWindow.setTitleFromString("Any Attachments?");}
else if(type==="types"){facetWindow.setTitleFromString("Type of Message?");}
else{facetWindow.setTitleFromString("What are you trying to do?");}
var req=MochiKit.Async.loadJSONDoc("/facets.xqy",{"q":curQuery,"type":type,"extended":"true","mode":"json"});req.addCallback(function(json){var body=[]
var column=undefined;var tableAttributes={"class":"facetcolumn"};var numberOfItmes=json.facets[type].item.length;for(var i=0;i<numberOfItmes;i+=1){if(!column){column=MochiKit.DOM.TBODY({});}
var item=json.facets[type].item[i];var rowAttributes={};if(i%2){rowAttributes["class"]="even";}
var anchor=MochiKit.DOM.A({"href":item.url,"onclick":"return false"},item.name);MochiKit.Signal.connect(anchor,"onclick",function(event){var link=mm.parseURL(event.src().href);that.closeFacetDetail();that.update(link.url.q,results);});MochiKit.DOM.appendChildNodes(column,MochiKit.DOM.TR(rowAttributes,MochiKit.DOM.TD({"class":"position"},(i+1)+") "),MochiKit.DOM.TD({"class":"name"},anchor),MochiKit.DOM.TD({"class":"count"},item.value)));if(i+1===Math.ceil(numberOfItmes/2)&&numberOfItmes>20){body.push(MochiKit.DOM.TABLE(tableAttributes,column));column=undefined;}}
if(column){body.push(MochiKit.DOM.TABLE(tableAttributes,column));}
facetWindow.setBodyFromElement(body);});});};this.closeFacetDetail=function(){facetWindow.close();};this.isFacetDetailOpen=function(){return facetWindow.isOpen();};var connectViewMoreLinks=function(){var listsLink=MochiKit.DOM.getFirstElementByTagAndClassName("div","fmore",lists);var sendersLink=MochiKit.DOM.getFirstElementByTagAndClassName("div","fmore",senders);var extensionsLink=MochiKit.DOM.getFirstElementByTagAndClassName("div","fmore",extensions);var typesLink=MochiKit.DOM.getFirstElementByTagAndClassName("div","fmore",types);if(listsLink){MochiKit.Signal.connect(listsLink,"onclick",function(){that.openFacetDetail("lists")});}
if(sendersLink){MochiKit.Signal.connect(sendersLink,"onclick",function(){that.openFacetDetail("senders")});}
if(extensionsLink){MochiKit.Signal.connect(extensionsLink,"onclick",function(){that.openFacetDetail("extensions")});}
if(typesLink){MochiKit.Signal.connect(typesLink,"onclick",function(){that.openFacetDetail("types")});}};var monitorDateString=function(){var newVal=prevDatesFromFlash;try{newVal=dateDiv.GetVariable('_root.dateSelection');}
catch(e){}
if(newVal!==prevDatesFromFlash&&newVal!=null){prevDatesFromFlash=newVal;that.setDateRange(newVal);}};var monitorLoadStatus=function(){var newVal=prevLoadStatFromFlash;try{newVal=dateDiv.GetVariable('_root.dataLoaded');}
catch(e){}
if(newVal===true&&prevLoadStatFromFlash===false){prevLoadStatFromFlash=newVal;that.graphLoaded();}};var writeGraph=function(query){var flashvars={"dateChangeCallback":"facets.setDateRange","loadCallback":"facets.graphLoaded"};if(mm.ieVersion<7&&mm.ieVersion>0){flashvars={};}
if(query){flashvars.xml_file=MochiKit.Base.urlEncode("/graph.xqy?q="+MochiKit.Base.urlEncode(query));}
else if(mm.fragment&&mm.fragment.query){flashvars.xml_file=MochiKit.Base.urlEncode("/graph.xqy?q="+MochiKit.Base.urlEncode(mm.fragment.query));}
else if(mm.url.q){flashvars.xml_file=MochiKit.Base.urlEncode("/graph.xqy?q="+MochiKit.Base.urlEncode(mm.url.q));}
else{flashvars.xml_file="/graph.xqy";}
var attributes={"id":"dateschild","name":"dateschild"};var params={"bgcolor":"#ffffff","quality":"high","wmode":"transparent"};var swfUrl;if(mm.version){swfUrl="/swf/bar_"+mm.version+".swf";}
else{swfUrl="/swf/bar.swf";}
swfobject.embedSWF(swfUrl,"dateschild","435","200","6.0.0",undefined,flashvars,params,attributes);dateDiv=MochiKit.DOM.getElement("dateschild");dateDiv.style.visibility="visible";if(mm.ieVersion<7&&mm.ieVersion>0){window.setInterval(monitorDateString,500);window.setInterval(monitorLoadStatus,500);}};connectToLinks(lists);connectToLinks(senders);connectToLinks(extensions);connectToLinks(types);connectViewMoreLinks();MochiKit.Signal.connect(dateMessage,"onclick",that,"clearDates");var resDiv=MochiKit.DOM.getFirstElementByTagAndClassName("div","noresults","please");dateDiv=MochiKit.DOM.getElement("dateschild");if(mm.view==="search"&&resDiv){dateDiv.innerHTML="<img src='/images/no_results.gif'/>";}
else if(mm.view==="search"){mm.url.querySansDate=dateDiv.title;dateDiv.style.visibility="hidden";dateDiv.innerHTML="If you had Flash installed you'd see a nice graph here.";writeGraph();}
mm.layer.register("facets",this);};var Results=function(){var that=this;var curPage=1;var curQuery=mm.url.q;var numPages=1;var resultNumber=0;var overflowHidden=false;var searchActions;var resultList=[];var resultscol=MochiKit.DOM.getElement("resultscol");var container=MochiKit.DOM.getElement("results");var pagination=MochiKit.DOM.getElement("pagination");var searchActionsContainer=MochiKit.DOM.getElement("searchactions");var label=MochiKit.DOM.getFirstElementByTagAndClassName("div","label",container);var values=MochiKit.DOM.getFirstElementByTagAndClassName("div","values",container);var info=MochiKit.DOM.getFirstElementByTagAndClassName("span","info",label);var loading=MochiKit.DOM.getFirstElementByTagAndClassName("img","loading",label);var permalink=MochiKit.DOM.getFirstElementByTagAndClassName("a","permalink",label);var atomlink=MochiKit.DOM.getFirstElementByTagAndClassName("a","atom",label);if(permalink){MochiKit.Signal.connect(permalink,"onclick",function(){var l=MochiKit.DOM.getFirstElementByTagAndClassName("a","permalink",label);_gaq.push(['_trackEvent','perma-link',""+l.href]);});}
if(atomlink){MochiKit.Signal.connect(atomlink,"onclick",function(){var l=MochiKit.DOM.getFirstElementByTagAndClassName("a","atom",label);_gaq.push(['_trackEvent','atom-link',""+l.href]);});}
var searchActionsButton=MochiKit.DOM.getFirstElementByTagAndClassName("a","actions",label);if(searchActionsContainer){searchActions=new mm.Search.Actions(searchActionsContainer);MochiKit.Signal.connect(searchActionsButton,"onclick",searchActions,"toggle");}
var orderOption=MochiKit.DOM.getElement("orderoption");if(mm.url.page){if(parseInt(mm.url.page,10)>0){curPage=parseInt(mm.url.page,10);}}
this.showOverflow=function(){values.style.overflow="auto";values.style.paddingRight="5px";overflowHidden=false;orderOption.style.visibility="visible";};this.hideOverflow=function(){values.style.overflow="hidden";values.style.paddingRight="20px";overflowHidden=true;if(navigator.userAgent.indexOf("MSIE")!=-1){orderOption.style.visibility="hidden";}};this.isOverflowHidden=function(){return overflowHidden;};this.display=function(){resultscol.style.display="block";};this.setHeight=function(){var mainHeight=MochiKit.Style.getElementDimensions("main").h;var labelHeight=MochiKit.Style.getElementDimensions(label).h;values.style.height=mainHeight-labelHeight-17+"px";if(resultList[resultNumber-1]){this.highlightResult(resultList[resultNumber-1].id);}};this.getHeight=function(){return MochiKit.Style.getElementDimensions(resultscol).h;};this.setColumnWidth=function(width){resultscol.style.width=width+"px";};this.getColumnWidth=function(){return MochiKit.Style.getElementDimensions(resultscol).w;};this.setContentWidth=function(width){container.style.width=width+"px";};this.getContentWidth=function(){return MochiKit.Style.getElementDimensions(container).w+10;};this.resetHighlighting=function(){resultNumber=0;};this.getCurrentQuery=function(){return curQuery;};this.getCurrentPage=function(){return curPage;};this.changeOrder=function(event){var select=event.src();that.fetch(select.value,1);dhtmlHistory.add(createFragment());};var refreshOrderOption=function(mode){if(!mode){mode="relevance";}
for(var i=0;i<orderOption.options.length;i+=1){if(orderOption.options[i].className===mode){orderOption.options[i].selected=true;}
else{orderOption.options[i].selected=false;}}};var updateOrderLinks=function(json){for(var i=0;i<orderOption.options.length;i+=1){if(orderOption.options[i].className==="relevance"){orderOption.options[i].value=json.search.orderlinks.relevance;}
else if(orderOption.options[i].className==="date-forward"){orderOption.options[i].value=json.search.orderlinks.date_forward;}
else if(orderOption.options[i].className==="date-backward"){orderOption.options[i].value=json.search.orderlinks.date_backward;}}};this.fetch=function(query,page,callback,force,referMessageId){message.stopTimer();page=parseInt(page,10);if(!force&&query===curQuery&&page===curPage){return;}
if(captcha){captcha.cancel();}
curPage=page;curQuery=query;loading.style.visibility="visible";disconnect();var params={"q":query,"page":page,"mode":"json","id":message.getCurrentMessageId()};if(referMessageId){params.refer=referMessageId;}
var req=MochiKit.Async.loadJSONDoc("/results.xqy",params);req.addCallback(function(json){var scrubbedQuery=json.search.query;if(!scrubbedQuery){scrubbedQuery="";}
MochiKit.DOM.getElement("templatesearch").value=scrubbedQuery;curQuery=scrubbedQuery;loading.style.visibility="hidden";render(json);updateOrderLinks(json);refreshOrderOption(json.search.order);document.title=json.search.title;permalink.href=json.search.permalink;atomlink.href=json.search.atomlink;if(callback){callback.call();}
if(!referMessageId){_gaq.push(["_trackPageview","/search/?q="+MochiKit.Base.urlEncode(query)+"&page="+page]);}});req.addErrback(function(obj){MochiKit.Logging.log(obj);});};this.nextPage=function(callback){if(curPage<numPages){this.fetch(curQuery,curPage+1,callback);dhtmlHistory.add(createFragment());_gaq.push(['_trackEvent','results','navigate','nextPage']);}};this.previousPage=function(callback){if(curPage>1){this.fetch(curQuery,curPage-1,callback);dhtmlHistory.add(createFragment());_gaq.push(['_trackEvent','results','navigate','prevPage']);}};this.nextResult=function(){if(resultNumber<10&&resultList[resultNumber]){message.show(resultList[resultNumber].id,curQuery);_gaq.push(['_trackEvent','results','navigate','next']);}
else if(curPage<numPages){resultNumber=1;this.nextPage(function(){message.show(resultList[0].id,curQuery);_gaq.push(['_trackEvent','results','navigate','next']);});}};this.previousResult=function(){if(resultNumber>1){message.show(resultList[resultNumber-2].id,curQuery);_gaq.push(['_trackEvent','results','navigate','prev']);}
else if(curPage>1){resultNumber=10;this.previousPage(function(){message.show(resultList[9].id,curQuery);_gaq.push(['_trackEvent','results','navigate','prev']);});}};var render=function(json){resultList=[];numPages=parseInt(json.search.numpages,10);values.innerHTML="";info.innerHTML=json.search.start+" to "+json.search.end+" of about "+json.search.estimation;info.style.display="block";for(i=0;i<json.search.results.result.length;i+=1){resultList.push({"id":json.search.results.result[i].id});var subject=MochiKit.DOM.A({"href":json.search.results.result[i].url,"class":"connect","onclick":"return false"});subject.innerHTML=json.search.results.result[i].subject;var blurb=MochiKit.DOM.DIV({"class":"blurb"});if(json.search.results.result[i].blurb===null){blurb.innerHTML="<span><i>(No body)</i></span>";}
else{blurb.innerHTML=json.search.results.result[i].blurb;}
var date=json.search.results.result[i].date+" - ";var from=json.search.results.result[i].from+" - ";var list;if(json.search.results.result[i].attachments!==null){list=json.search.results.result[i].list+" - ";}
else{list=json.search.results.result[i].list;}
var attach="";if(json.search.results.result[i].attachments){attach=MochiKit.DOM.IMG({"src":"/images/attachment.gif","alt":json.search.results.result[i].attachments,"title":json.search.results.result[i].attachments});}
var meta=MochiKit.DOM.DIV({"class":"meta"},date+from+list,attach);var arrow=MochiKit.DOM.IMG({"class":"link","src":"/images/link_arrow.gif","alt":"View Message"});var result=MochiKit.DOM.DIV({"class":"result","id":json.search.results.result[i].id},subject,blurb,arrow,meta);MochiKit.DOM.appendChildNodes(values,result);}
renderPaging(json);connectToLinks();that.highlightResult(message.getCurrentMessageId());};var renderPaging=function(json){pagination=MochiKit.DOM.DIV({"class":"pagination"});MochiKit.DOM.appendChildNodes(values,pagination);if(json.search.pagination.previous){var prev=MochiKit.DOM.SPAN({"class":"previouspage"},MochiKit.DOM.A({"href":json.search.pagination.previous.url,"class":"connect","onclick":"return false"},"Previous"));MochiKit.DOM.appendChildNodes(pagination,prev);}
for(var i=0;i<json.search.pagination.pages.page.length;i+=1){var num=null;if(json.search.pagination.pages.page[i].current==="true"){num=MochiKit.DOM.SPAN({"class":"number"},json.search.pagination.pages.page[i].number);}
else{num=MochiKit.DOM.SPAN({"class":"number"},MochiKit.DOM.A({"href":json.search.pagination.pages.page[i].url,"class":"connect","onclick":"return false"},json.search.pagination.pages.page[i].number));}
MochiKit.DOM.appendChildNodes(pagination,num);}
if(json.search.pagination.next){var next=MochiKit.DOM.SPAN({"class":"nextpage"},MochiKit.DOM.A({"href":json.search.pagination.next.url,"class":"connect","onclick":"return false"},"Next"));MochiKit.DOM.appendChildNodes(pagination,next);}};this.highlightResult=function(id){var divs=MochiKit.DOM.getElementsByTagAndClassName("div","result","results");for(i=0;i<divs.length;i+=1){divs[i].className="result";}
for(i=0;i<resultList.length;i+=1){if(resultList[i].id===id){resultNumber=i+1;break;}}
var selected=MochiKit.DOM.getElement(id);if(selected){selected.className="result highlighted";if(resultNumber===1){values.scrollTop=0;}
else if(resultNumber===10){values.scrollTop=MochiKit.Style.getElementDimensions(values).h;}
else{scrollOverflowToElement(values,MochiKit.DOM.getElement(id));}}
else{values.scrollTop=0;}};var connectToLinks=function(init){var links=MochiKit.DOM.getElementsByTagAndClassName("a","connect",container);for(var i=0;i<links.length;i+=1){if(links[i].parentNode.className==="number"){MochiKit.Signal.connect(links[i],"onclick",function(event){that.fetch(curQuery,parseInt(event.src().innerHTML,10),function(){values.scrollTop=0;});dhtmlHistory.add(createFragment());});}
else if(links[i].parentNode.className==="previouspage"){MochiKit.Signal.connect(links[i],"onclick",function(){that.previousPage(function(){values.scrollTop=0;});});}
else if(links[i].parentNode.className==="nextpage"){MochiKit.Signal.connect(links[i],"onclick",function(){that.nextPage(function(){values.scrollTop=0;});});}
else{MochiKit.Signal.connect(links[i].parentNode,"onclick",function(event){var resultDiv=event.src();var id=resultDiv.id;var anchor=MochiKit.DOM.getFirstElementByTagAndClassName("a","connect",resultDiv);if(id===message.getCurrentMessageId()){slide.slideLeft();}
else{message.show(id,curQuery);_gaq.push(['_trackEvent','results','navigate','click']);}});}}
if(init===true&&orderOption){MochiKit.Signal.connect(orderOption,"onchange",that,"changeOrder");}};var disconnect=function(){var links=MochiKit.DOM.getElementsByTagAndClassName("a","connect",container);for(var i=0;i<links.length;i+=1){var parentClass=links[i].parentNode.className;if(parentClass==="number"||parentClass==="previouspage"||parentClass==="nextpage"){MochiKit.Signal.disconnectAll(links[i]);}
else{MochiKit.Signal.disconnectAll(links[i].parentNode);}}};mm.layer.register("results",this);connectToLinks(true);var links=MochiKit.DOM.getElementsByTagAndClassName("div","result",container);for(var i=0;i<links.length;i+=1){var anchor=MochiKit.DOM.getFirstElementByTagAndClassName("a",null,links[i]);resultList.push({"id":links[i].id});}
try{var numResults=info.innerHTML;var withComma=numResults.split("of about ")[1];if(withComma){numResults=parseInt(withComma.replace(/,/g,""),10);numPages=Math.ceil(numResults/10);}else{numPages=0;}}
catch(error){numPages=0;}
if(mm.url.id){this.highlightResult(mm.url.id);}};var Message=function(){var that=this;var hasResultsBefore=false;var hasResultsAfter=false;var threadLoadingFlag=false;var messageLoadingFlag=false;var overflowHidden=false;var messagesInThread=[];var messageId=mm.url.id;var currentQuery=mm.url.q;var viewDuration=undefined;var timerRunning=false;var wasScrolled=false;var initialScroll=0;if(!currentQuery){currentQuery="";}
var messagecol=MochiKit.DOM.getElement("messagecol");var threadContainer=MochiKit.DOM.getElement("thread");var messContainer=MochiKit.DOM.getElement("message");var threadValues=MochiKit.DOM.getFirstElementByTagAndClassName("div","values",threadContainer);var messageValues=MochiKit.DOM.getFirstElementByTagAndClassName("div","values",messContainer);var threadLabel=MochiKit.DOM.getFirstElementByTagAndClassName("div","label",threadContainer);var messageLabel=MochiKit.DOM.getFirstElementByTagAndClassName("div","label",messContainer);var threadInfo=MochiKit.DOM.getFirstElementByTagAndClassName("span","info",threadLabel);var messageThreadLoading=MochiKit.DOM.getFirstElementByTagAndClassName("img","loading",threadLabel);var messageSubject=MochiKit.DOM.getFirstElementByTagAndClassName("span","subject",threadLabel);var originalWidth=MochiKit.Style.getElementDimensions(messagecol).w;this.setHeight=function(height){var mainHeight=MochiKit.Style.getElementDimensions("main").h;messagecol.style.height=mainHeight+"px";var threadHeight=MochiKit.Style.getElementDimensions(threadContainer).h;messageValues.style.height=mainHeight-threadHeight-27+"px";};this.getHeight=function(){return MochiKit.Style.getElementDimensions(messagecol).h;};this.setWidth=function(width){messagecol.style.width=width+"px";messageValues.style.width=width-22+"px";messagecol.style.display='block';};this.getWidth=function(){return MochiKit.Style.getElementDimensions(messagecol).w;};this.getOriginalWidth=function(){return originalWidth;};this.resetWidth=function(){messagecol.style.width=originalWidth+"px";messagecol.style.display='none';};this.scrollTop=function(){messageValues.scrollTop=0;};this.hideOverflow=function(){threadValues.style.overflow="hidden";threadValues.style.paddingRight="20px";messageValues.style.overflow="hidden";messageValues.style.paddingRight="20px";overflowHidden=true;};this.showOverflow=function(){threadValues.style.overflow="auto";threadValues.style.paddingRight="5px";messageValues.style.overflow="auto";messageValues.style.paddingRight="5px";overflowHidden=false;};this.isOverflowHidden=function(){return overflowHidden;};this.show=function(id,query,skipHistory){if(captcha){captcha.cancel();}
if(timerRunning){this.stopTimer();}
if(id!==messageId||query!==currentQuery){mm.logger.logEvent("message","view",id,{"q":query});slide.slideLeft();updateMessage(id);updateThread(id);this.setHeight();messageId=id;if(query){currentQuery=query;}
else{currentQuery="";}
if(!skipHistory){dhtmlHistory.add(createFragment());}}
if(attachViewer.isOpen()){attachViewer.hide();}
results.highlightResult(id);};this.clear=function(){this.stopTimer();threadInfo.innerHTML=" ";threadValues.innerHTML=" ";messageSubject.innerHTML=" ";messageValues.innerHTML=" ";messageId=undefined;messagesInThread=[];results.highlightResult(messageId);if(attachViewer&&attachViewer.isOpen()){attachViewer.hide();}};this.refresh=function(){updateMessage(messageId,true);};this.getCurrentMessageId=function(){if(messageId===undefined){return"";}
return messageId;};this.nextInThread=function(){var rows=MochiKit.DOM.getElementsByTagAndClassName("tr",null,threadContainer);var row=rows[getCurrentMessagePosition()+1];if(row){this.show(row.id.substring(4),currentQuery);}};this.previousInThread=function(){var rows=MochiKit.DOM.getElementsByTagAndClassName("tr",null,threadContainer);var pos=getCurrentMessagePosition();if(pos>1){var row=rows[getCurrentMessagePosition()-1];if(row){this.show(row.id.substring(4),currentQuery);}}};this.connectCaptchas=function(){captcha.connect(messageValues);};this.foldMessage=function(){};var getCurrentMessagePosition=function(){var rows=MochiKit.DOM.getElementsByTagAndClassName("tr",null,threadContainer);for(var i=1;i<rows.length;i+=1){if(rows[i].id==="row-"+messageId){return i;}}};var updateThread=function(id){var positionOfCurrentMessage=getMessagePositionInThreadList(messageId);var positionOfNewMessage=getMessagePositionInThreadList(id);var closeToEnd=false;if(positionOfNewMessage<=5&&hasResultsBefore&&positionOfNewMessage<positionOfCurrentMessage){closeToEnd=true;}
else if(positionOfNewMessage>=messagesInThread.length-5&&hasResultsAfter&&positionOfNewMessage>positionOfCurrentMessage){closeToEnd=true;}
if(positionOfNewMessage===0||closeToEnd){threadContainer.style.visibility="visible";messageThreadLoading.style.visibility="visible";threadLoadingFlag=true;var req=MochiKit.Async.loadJSONDoc("/thread.xqy",{"q":currentQuery,"id":id,"mode":"json"});req.addCallback(renderThread);req.addErrback(function(obj){MochiKit.Logging.log(obj);});}
else{highlightThread(id);}};var renderThread=function(json){threadDisconnect();threadLoadingFlag=false;if(!threadLoadingFlag&&!messageLoadingFlag){messageThreadLoading.style.visibility="hidden";}
threadValues.innerHTML="";var tbody=MochiKit.DOM.TBODY({},MochiKit.DOM.TR({},MochiKit.DOM.TH({},"From"),MochiKit.DOM.TH({},"Sent On"),MochiKit.DOM.TH({},"Attachments")));threadInfo.innerHTML=json.thread.num_messages+(json.thread.num_messages=="1"?" message in ":" messages in ")+json.thread.list;var table=MochiKit.DOM.TABLE({},tbody);MochiKit.DOM.appendChildNodes(threadValues,table);var tlink=MochiKit.DOM.getElement("thread-link");tlink.href=json.thread.permalink;var alink=MochiKit.DOM.getElement("atom-link");alink.href=json.thread.atomlink;if(json.thread.moreresults.before){MochiKit.DOM.appendChildNodes(tbody,MochiKit.DOM.TR({"class":"moreresults before"},MochiKit.DOM.TD({"colspan":"3"},json.thread.moreresults.before)));}
for(i=0;i<json.thread.messages.message.length;i+=1){var attachCell;if(json.thread.messages.message[i].attachments){attachCell=MochiKit.DOM.TD({},MochiKit.DOM.IMG({"src":"/images/attachment.gif","alt":""}),json.thread.messages.message[i].attachments);}
else{attachCell=MochiKit.DOM.TD({},json.thread.messages.message[i].attachments);}
var attribs={};attribs.id="row-"+json.thread.messages.message[i].id;attribs["class"]="threadmessage othermessage";var date=json.thread.messages.message[i].date;var row=MochiKit.DOM.TR(attribs,MochiKit.DOM.TD({},MochiKit.DOM.A({"href":json.thread.messages.message[i].url,"onclick":"return false"},json.thread.messages.message[i].from)),MochiKit.DOM.TD({},date),attachCell);MochiKit.DOM.appendChildNodes(tbody,row);}
if(json.thread.moreresults.after){MochiKit.DOM.appendChildNodes(tbody,MochiKit.DOM.TR({"class":"moreresults after"},MochiKit.DOM.TD({"colspan":"3"},json.thread.moreresults.after)));}
connectToThreadLinks();highlightThread(messageId);};var highlightThread=function(id){id="row-"+id;for(var i=0;i<messagesInThread.length;i+=1){if(messagesInThread[i].id===id){messagesInThread[i].className="threadmessage currentmessage";if(i===0){threadValues.scrollTop=0;}
else{scrollOverflowToElement(threadValues,messagesInThread[i].firstChild);}}
else{messagesInThread[i].className="threadmessage othermessage";}}};var getMessagePositionInThreadList=function(id){id="row-"+id;for(var i=0;i<messagesInThread.length;i+=1){if(messagesInThread[i].id===id){return i+1;}}
return 0;}
var connectToThreadLinks=function(){messagesInThread=MochiKit.DOM.getElementsByTagAndClassName("tr","threadmessage",threadContainer);for(var i=0;i<messagesInThread.length;i+=1){MochiKit.Signal.connect(messagesInThread[i],"onclick",function(event){var id=event.src().id;that.show(id.substring(4),currentQuery);_gaq.push(['_trackEvent','thread','navigate',id.substring(4)+" "+currentQuery]);});}
hasResultsBefore=false;hasResultsAfter=false;var moreResults=MochiKit.DOM.getElementsByTagAndClassName("tr","moreresults",threadContainer);for(i=0;i<moreResults.length;i+=1){if(MochiKit.DOM.hasElementClass(moreResults[i],"before")){hasResultsBefore=true;}
else if(MochiKit.DOM.hasElementClass(moreResults[i],"after")){hasResultsAfter=true;}}
var threadlink=MochiKit.DOM.getFirstElementByTagAndClassName("a","permalink",threadContainer);if(threadlink){MochiKit.Signal.connect(threadlink,"onclick",function(){var l=MochiKit.DOM.getFirstElementByTagAndClassName("a","permalink",threadContainer);_gaq.push(['_trackEvent','thread-link',""+l.href]);});}
var atomlink=MochiKit.DOM.getFirstElementByTagAndClassName("a","atom",threadContainer);if(atomlink){MochiKit.Signal.connect(atomlink,"onclick",function(){var l=MochiKit.DOM.getFirstElementByTagAndClassName("a","atom",threadContainer);_gaq.push(['_trackEvent','atom-link',""+l.href]);});}};var threadDisconnect=function(){for(var i=0;i<messagesInThread.length;i+=1){MochiKit.Signal.disconnectAll(messagesInThread[i]);}
var threadlink=MochiKit.DOM.getFirstElementByTagAndClassName("a","permalink",threadContainer);var atomlink=MochiKit.DOM.getFirstElementByTagAndClassName("a","atom",threadContainer);if(threadlink)MochiKit.Signal.disconnectAll(threadlink);if(atomlink)MochiKit.Signal.disconnectAll(atomlink);};var updateMessage=function(id,force){if(id!==messageId||force){var t="";if(force){t=new Date().getTime();}
messContainer.style.visibility="visible";messageThreadLoading.style.visibility="visible";messageLoadingFlag=true;var req=MochiKit.Async.doSimpleXMLHttpRequest("/message.xqy",{"q":currentQuery,"id":id,"mode":"xml","t":t});req.addCallback(renderMessage);req.addErrback(function(obj){MochiKit.Logging.log(obj);});}};var renderMessage=function(response){messageDisconnect();startTimer();messageValues.scrollTop=0;messageLoadingFlag=false;if(!threadLoadingFlag&&!messageLoadingFlag){messageThreadLoading.style.visibility="hidden";}
var xml=response.responseXML;var subject=xml.getElementsByTagName("subject")[0].childNodes[0];if(subject){messageSubject.style.fontStyle="normal";messageSubject.innerHTML=MochiKit.DOM.escapeHTML(subject.nodeValue);}
else{messageSubject.style.fontStyle="italic";messageSubject.innerHTML="(No subject)";}
if(typeof(ActiveXObject)==="function"){var html=htmlAlize(xml.getElementsByTagName("content")[0].firstChild);MochiKit.DOM.replaceChildNodes(messageValues,html);}
else{var content=(new XMLSerializer()).serializeToString(xml.getElementsByTagName("content")[0].childNodes[0]);messageValues.innerHTML=content;}
connectMessageLinks();that.connectCaptchas();document.title=xml.getElementsByTagName("title")[0].childNodes[0].nodeValue;var listname=xml.getElementsByTagName('message').item(0).attributes.getNamedItem("list").value;_gaq.push(['_trackPageview',"/message/"+messageId],['_trackEvent',"list",listname,messageId]);};var startTimer=function(){viewDuration=0;timerRunning=true;runTimer();};this.stopTimer=function(){if(timerRunning){timerRunning=false;mm.logger.logEvent("message","time",messageId,{"d":viewDuration});_gaq.push(['_trackEvent','message',messageId,"duration",viewDuration]);}};var runTimer=function(){window.setTimeout(function(){if(viewDuration>=300){that.stopTimer();}
else if(timerRunning){viewDuration+=1;runTimer();}
if(!wasScrolled&&initialScroll!==messageValues.scrollTop){wasScrolled=true;mm.logger.logEvent("message","scroll",messageId);_gaq.push(['_trackEvent','message','scroll',messageId]);}},1000);};var connectMessageLinks=function(){var downloadLinks=MochiKit.DOM.getElementsByTagAndClassName("a","download",messageValues);for(var i=0;i<downloadLinks.length;i+=1){MochiKit.Signal.connect(downloadLinks[i],"onclick",function(event){var link=mm.parseURL(event.src().href);mm.logger.logEvent("attachment","download",messageId+"/"+link.url.number,{"q":currentQuery});_gaq.push(['_trackEvent','message','download',messageId+" "+link.url.number]);});}
var externalLinks=MochiKit.DOM.getElementsByTagAndClassName("a","exlink",messageValues);for(i=0;i<externalLinks.length;i+=1){MochiKit.Signal.connect(externalLinks[i],"onclick",function(event){_gaq.push(['_trackEvent','message','exlink',messageId+" "+event.src().href]);mm.logger.logEvent("message","link",messageId+"/"+MochiKit.Base.urlEncode(event.src().href));});}
var permalink=MochiKit.DOM.getFirstElementByTagAndClassName("a","permalink",messageValues);if(permalink){MochiKit.Signal.connect(permalink,"onclick",function(){_gaq.push(['_trackEvent','perma-link',""+permalink.href]);});}};var messageDisconnect=function(){var links=MochiKit.DOM.getElementsByTagAndClassName("*",null,messageValues);for(var i=0;i<links.length;i+=1){MochiKit.Signal.disconnectAll(links[i]);}};connectToThreadLinks();connectMessageLinks();if(mm.url.id){highlightThread(messageId);}
mm.layer.register("message",this);};var SideBar=function(){var that=this;var overflowHidden=false;this.getHeight=function(){return MochiKit.Style.getElementDimensions("sidebarcol").h;};this.setWidth=function(width){sidebar.style.width=width+"px";};this.getWidth=function(){return MochiKit.Style.getElementDimensions("sidebarcol").w;};this.update=function(query,resultObject,skipGraph){var holder=MochiKit.DOM.getElement("sidebarcol");};this.showOverflow=function(){overflowHidden=false;};this.hideOverflow=function(){overflowHidden=true;};this.isOverflowHidden=function(){return overflowHidden;};};var Fold=function(params){var characterHeight=10;var messageHeight=MochiKit.Style.getElementDimensions(params.root).h;var paddingTop=params.padding;var paddingBottom=params.padding;var paragraaphs=null;var groups=null;var numberOfMatches=0;var madFold=null;var folded=false;var canBeFolded=false;this.fold=function(padding,maxFromSameElement,spaceAvailable){if(padding){paddingTop=padding;paddingBottom=padding;}
if(maxFromSameElement){params.maxFromSameElement=maxFromSameElement;}
if(spaceAvailable){params.spaceAvailable=spaceAvailable;}
if(params.spaceAvailable&&params.spaceAvailable>messageHeight){showFullMessage(0);return;}
groupParagraphs();if(numberOfMatches===0){showFullMessage(0);return;}
canBeFolded=true;var html=[];for(var i=0;i<groups.length;i+=1){var group=groups[i];var blurb=MochiKit.DOM.DIV({});var topFade=null;if(!(group.elements[0].location===0&&group.margin===0)){topFade=MochiKit.DOM.DIV({"class":"topfade"}," ");}
var scrollBar=MochiKit.DOM.DIV({"class":"scrollbar"}," ");var scrollDiv=MochiKit.DOM.DIV({"class":"scroll"},scrollBar);scrollBar.style.marginTop=Math.round((group.elements[0].location-group.margin)/messageHeight*group.height)+"px";scrollBar.style.height=Math.round((group.height/messageHeight)*group.height)+"px";var groupDiv=MochiKit.DOM.DIV({"class":"fold","title":"Click to view full message"},topFade,blurb,scrollDiv);if(!(group.elements[0].location===0&&group.margin===0)){blurb.style.marginTop=group.margin-20+"px";}
else{blurb.style.marginTop=group.margin+"px";}
groupDiv.style.height=group.height+"px";for(var j=0;j<group.elements.length;j+=1){var element=group.elements[j];MochiKit.DOM.appendChildNodes(groupDiv,renderElement(element.element,element.ancestors));}
groupDiv.id="g"+i+"p-"+group.elements[0].number;MochiKit.Signal.connect(groupDiv,"onclick",function(event){var number=event.src().id.substring(event.src().id.indexOf("-")+1);showFullMessage(paragraphs[number].location);});html.push(groupDiv);html.push(MochiKit.DOM.DIV({"class":"bottomfade"}," "));}
madFold=MochiKit.DOM.DIV({"id":"foldbody","class":"messagebody"},html);MochiKit.DOM.appendChildNodes(params.root.parentNode,madFold);folded=true;};this.isFolded=function(){return folded;};this.showMessage=function(){showFullMessage(0);};this.showMadFold=function(){if(canBeFolded){madFold.style.display="block";params.root.style.display="none";folded=true;}};var showFullMessage=function(scrollAmount){if(madFold){madFold.style.display="none";}
params.root.style.visibility="visible";params.root.style.display="block";params.scrollElement.scrollTop=scrollAmount;folded=false;};var gatherParagraphs=function(){paragraphs=[];var ps=MochiKit.DOM.getElementsByTagAndClassName("p",null,params.root);for(var i=0;i<ps.length;i+=1){var para=ps[i];var display=MochiKit.Style.getStyle(para.parentNode,"display");if(display&&display!=="none"){var matches=[];var strongs=MochiKit.DOM.getElementsByTagAndClassName("strong",null,para);numberOfMatches+=strongs.length;for(var j=0;j<strongs.length;j+=1){var strong=strongs[j];matches.push({"location":MochiKit.Style.getElementPosition(strong,params.root).y});}
paragraphs.push({"number":i,"element":para,"location":MochiKit.Style.getElementPosition(para,params.root).y,"height":MochiKit.Style.getElementDimensions(para).h,"matches":matches,"ancestors":getAncestors(para)});}}};var getAncestors=function(element){var ancestors=[];var parent=element;while(params.root!==parent){var style=parent.getAttribute("style");if(style){style=style.toString();}
var attributes={"id":parent.getAttribute("id"),"class":parent.className,"style":style,"title":parent.getAttribute("title")};ancestors.push({"name":parent.nodeName,"attributes":attributes});parent=parent.parentNode;}
return ancestors;};var groupParagraphs=function(){var i;var j;var k;groups=[];var matchesInSamePara=0;var matchLocations=[];for(i=0;i<paragraphs.length;i+=1){for(j=0;j<paragraphs[i].matches.length;j+=1){matchesInSamePara+=1;if(matchesInSamePara<=params.maxFromSameElement){matchLocations.push(paragraphs[i].matches[j].location);}
else{paragraphs[i].truncated=matchesInSamePara;}}
matchesInSamePara=0;}
var ranges=[];var rangeNum=0;for(i=0;i<matchLocations.length;i+=1){if(i===0||matchLocations[i]-matchLocations[i-1]>paddingTop+paddingBottom){ranges[rangeNum]={"start":matchLocations[i]-paddingTop,"end":matchLocations[i]+characterHeight+paddingBottom};if(i!==0){ranges[rangeNum-1].end=matchLocations[i-1]+characterHeight+paddingBottom;}
rangeNum+=1;}}
if(ranges.length>0){ranges.slice(-1)[0].end=matchLocations.slice(-1)[0]+characterHeight+paddingBottom;}
for(i=0;i<ranges.length;i+=1){groups.push({"elements":[],"range":ranges[i]});for(j=0;j<paragraphs.length;j+=1){var paraBottom=paragraphs[j].location+paragraphs[j].height;add=false;if(paragraphs[j].location<=ranges[i].start&&paraBottom>=ranges[i].start){add=true;}
else if(paragraphs[j].location>=ranges[i].start&&paraBottom<=ranges[i].end){add=true;}
else if(paragraphs[j].location<=ranges[i].end&&paraBottom>=ranges[i].end){add=true;}
if(add){groups[groups.length-1].elements.push(paragraphs[j]);}}}
for(i=0;i<groups.length;i+=1){var posOfFirstMatch=-1;var posOfLastMatch=-1;var posOfFirstPara=groups[i].elements[0].location;for(j=0;j<groups[i].elements.length;j+=1){for(k=0;k<groups[i].elements[j].matches.length;k+=1){var match=groups[i].elements[j].matches[k];if(match.location>=groups[i].range.start&&posOfFirstMatch===-1){posOfFirstMatch=match.location;}
if(match.location<=groups[i].range.end){posOfLastMatch=match.location+characterHeight;}}}
groups[i].margin=0-(posOfFirstMatch-posOfFirstPara-paddingTop);if(groups[i].margin>0){groups[i].margin=0;}
if(posOfFirstMatch>0){groups[i].height=posOfLastMatch-posOfFirstMatch+paddingTop+paddingBottom;}
else{groups[i].height=posOfLastMatch-posOfFirstMatch+paddingBottom;}
groups[i].truncated=groups[i].elements.slice(-1)[0].truncated;}};var renderElement=function(element,ancestors){var ancestor=ancestors[ancestors.length-1];if(ancestor){var attribs={};if(ancestor.attributes.id){attribs.id=ancestor.attributes.id;}
if(ancestor.attributes['class']){attribs['class']=ancestor.attributes['class'];}
if(ancestor.attributes.style){attribs.style=ancestor.attributes.style;}
if(ancestor.attributes.title){attribs.title=ancestor.attributes.title;}
return MochiKit.DOM[ancestor.name](attribs,renderElement(element,ancestors.slice(0,ancestors.length-1)));}
else{return element.cloneNode(true).childNodes;}};params.root.style.visibility="hidden";gatherParagraphs();params.root.style.display="none";};function keyUp(e){if(!mm.globals.captureKeys||captcha.hasFocus()){return;}
if(e.key().code===16){shiftPress=false;}}
function keyDown(e){if(e.modifier().any){return;}
if(!mm.globals.captureKeys){return;}
if(captcha.hasFocus()&&e.key().code!==27){return;}
var keys=[];keys[27]="escape";if(!((mm.help&&mm.help.isOpen()===true)||(mm.user&&mm.user.isOpen()))){keys[16]="shift";keys[32]="space bar";keys[37]="left arrow";keys[38]="up arrow";keys[39]="right arrow";keys[40]="down arrow";keys[78]="n";keys[80]="p";keys[70]="f";keys[74]="j";keys[75]="k";keys[83]="s";keys[86]="v";keys[90]="z";}
if(keys[e.key().code]){switch(e.key().code){case 16:shiftPress=true;break;case 27:if(mm.help&&mm.help.isOpen()){mm.help.close();}
else if(mm.user&&mm.user.isOpen()){mm.user.close();}
else if(captcha&&captcha.hasFocus()){captcha.cancel();}
else if(attachViewer&&attachViewer.isOpen()){attachViewer.hide();}
else if(facets&&facets.isFacetDetailOpen()){facets.closeFacetDetail();}
break;case 78:results.nextResult();break;case 80:results.previousResult();break;case 74:message.nextInThread();break;case 75:message.previousInThread();break;case 83:var input=MochiKit.DOM.getElement("templatesearch");var value=input.value;input.focus();window.setTimeout(function(){input.value=value;},1);break;case 38:if(attachViewer&&attachViewer.isOpen()&&attachViewer.isZoomed()){attachViewer.scroll(4);}
break;case 40:if(attachViewer&&attachViewer.isOpen()&&attachViewer.isZoomed()){attachViewer.scroll(-4);}
break;case 37:if(attachViewer&&attachViewer.isOpen()){attachViewer.previousPage();}
break;case 39:if(attachViewer&&attachViewer.isOpen()){attachViewer.nextPage();}
break;case 32:if(attachViewer&&attachViewer.isOpen()){attachViewer.nextPage();}
break;case 86:if(attachViewer&&attachViewer.isOpen()){attachViewer.toggleMode();}
break;case 90:if(attachViewer&&attachViewer.isOpen()){attachViewer.toggleZoom();}
break;case 70:if(fold&&fold.isFolded()){fold.showMessage();}
else if(fold&&!fold.isFolded()){fold.showMadFold();}
break;}}}
function wheel(event){var delta=0;if(attachViewer.isOpen()&&attachViewer.isZoomed()&&attachViewer.getViewingMode()==="image"){if(!event){event=window.event;}
if(event.wheelDelta){delta=event.wheelDelta/120;if(window.opera){delta=-delta;}}
else if(event.detail){delta=-event.detail/3;}
if(delta&&attachViewer){attachViewer.scroll(delta);}
if(event.preventDefault){event.preventDefault();}
event.returnValue=false;}}
var canvasInit=function(){var loc=""+window.location;if(loc.indexOf("#")>0){mm.fragment=parseFragment(loc.substring(loc.indexOf("#")+1));}
if(mm.view==="message"){var refer=mm.parseURL(document.referrer);if(refer.domain&&refer.domain!=="localhost"&&!refer.domain.match("markmail.(org|biz|ws)$")){mm.logger.logEvent("message","refer",mm.url.id,{"r":document.referrer});}}
var cacheLoader=new Image();cacheLoader.src="/images/arrow_loader.gif";facets=new Facets();results=new Results();message=new Message();sidebar=new SideBar();attachViewer=new AttachmentViewer();captcha=new Captcha({"onsuccess":function(){message.refresh();},"onfailure":function(){}});slide=new Slide();setDims();MochiKit.Signal.connect("templatesearch","onfocus",function(){mm.globals.captureKeys=false;});MochiKit.Signal.connect("templatesearch","onblur",function(){mm.globals.captureKeys=true;});MochiKit.Signal.connect(window,"onresize",setDims);MochiKit.Signal.connect(document,"onkeydown",keyDown);MochiKit.Signal.connect(document,"onkeyup",keyUp);if(window.addEventListener){window.addEventListener('DOMMouseScroll',wheel,false);}
else{window.onmousewheel=document.onmousewheel=wheel;}
message.connectCaptchas();if(mm.url.id&&mm.url.id!==""){message.foldMessage();}
dhtmlHistory.initialize();dhtmlHistory.addListener(historyListener);if(loc.indexOf("#")>0){historyListener(loc.substring(loc.indexOf("#")+1));}};