var c={AdvancedNetworkSearch:["net_indextime"],AdvancedNetworkSearchAutocomplete:["net_indextime"],GetChanges:["pagetime","filetime","permtime","foldertime","commenttime"],GetFileUsers:["permtime"],GetFolderUsers:["permtime"],GetHypotheticalUsers:["permtime","foldertime"],GetObjectsNOM:["foldertime","pagetime","filetime","permtime"],GetPage:["pagetime","foldertime","permtime"],GetPageRevisions:["pagetime"],GetTags:["tagtime"],GetPageUsers:["permtime"],GetUsersInfos:["permtime","grouptime"],ListNetworkGroupUsers:["net_grouptime","net_permtime"],ListWorkspaceGroupUsers:["grouptime","permtime"],SetPageLock:["pagetime"]};var PBcacheability=PBcacheability||c;if(Object.extend){Object.extend(PBcacheability,c)}var c={kEditorV3PrefsKey:"v3p",kPolicyPageSizeWarning:51200,kPolicyConvertImportRegex:"/\\.(csv|docx?|ods|odt|rtf|wpd|xlsx?|txt)$/",kMaxPageNameLength:100,kInvalidPageCharacters:".[]?&|/\\+#%",kPolicySimpleTimeFormat:"%l:%M %p",kFoldersDefaultHeight:200,kRecentChangesNumber:7,kRecentChangesMax:12,kConvertDialogPrefsKey:"hide_file_import_dialog",kWorkspaceTreeOpenNodes:"workspace_open_folders",kScrollAreaBlockSize:50,kSendALinkAllUsersWithAccess:"all-users-with-access",kSendALinkType:{Page:"page",File:"file",Folder:"folder",Milestone:"milestone",Task:"task",Unknown:"item",View:"view"}};var PBconst=PBconst||c;if(Object.extend){Object.extend(PBconst,c)}PBwiki.Components=PBwiki.Components||{};PBwiki.Components.ScrollArea=Class.create({classname:"PBwiki.Components.ScrollArea",initialize:function(A){this.options=Object.extend({distanceThreshold:1,blockSize:PBconst.kScrollAreaBlockSize,scrollInterval:300,endInterval:200},A);try{this.setup(A.count,A.itm)}catch(B){this.options.elm.update(B.message+" "+B.line)}},onScroll:function(A){if(this.endTimeout){clearTimeout(this.endTimeout);delete this.endTimeout}this.endTimeout=setTimeout(this.checkAddBlocks.bind(this),this.options.endInterval);if(!this.scrollTimeout&&this.doScrollLoading){this.scrollTimeout=setTimeout(function(){delete this.scrollTimeout;this.checkAddBlocks()}.bind(this),this.options.scrollInterval)}},posToNodeNumber:function(A){return Math.round(A/this.options.height)+Math.round(this.numVisible/2)},nodeNumToBlockNum:function(A){return(A>this.options.count)?Math.floor(this.options.count/this.options.blockSize):Math.floor(A/this.options.blockSize)},posToBlockNum:function(A){return this.nodeNumToBlockNum(this.posToNodeNumber(A))},checkAddBlocks:function(){var A=Math.max(0,this.options.elm.scrollTop-(this.options.visibleHeight*this.options.distanceThreshold));var B=Math.min(this.totalHeight,this.options.elm.scrollTop+this.options.visibleHeight+(this.options.visibleHeight*this.options.distanceThreshold));var C=$R(this.posToBlockNum(A),this.posToBlockNum(B));C.each(function(D){if(this.blocks[D]){return }this.loadBlock(D)},this)},loadBlock:function(C,B){var A=Object.clone(this.options.args);if(B){A.anchor=B;delete A.offset}else{A.offset=C*this.options.blockSize}A.count=this.options.blockSize;new PBwiki.APIRequest(this.options.op,A,{onSuccess:this.blockLoaded.bind(this,C),cacheability:this.options.cacheTimes,key:this.options.key})},blockLoaded:function(B,E){var A=E._block||B;var D=A*this.options.blockSize;this.blocks[A]=true;this.lastAPIResult=E;if(E._total_count!==this.options.count){this.setCount(E._total_count)}if(!this.firstBlockLoaded){this.firstBlockLoaded=true;this.notify("onFirstBlock",E)}if(E._anchor){var F=E._anchor*this.options.height;this.options.elm.setAttribute("_scrollTop",F);this.options.elm.scrollTop=F}for(var C=0;C<E[this.options.dataKey].length;C++){this.loadNode(D+C,E[this.options.dataKey][C])}if(!E._total_count){this.setEmptyMsg();return }this.setLoadingStatus(false)},loadNode:function(B,A){if(this.nodes[B]){return }this.nodes[B]=new Element("div").addClassName(this.options.nodeClass).setStyle({zoom:1,position:"absolute",top:(B*this.options.height)+"px"});if(B%2==1){this.nodes[B].addClassName("alternate")}this.container.appendChild(this.nodes[B]);this.notify("onRowRender",this.nodes[B],A,null,B)},setup:function(A,B){this.nodes={};this.blocks={};this.options.count=A;if(A===0){return this.setEmptyMsg()}if(!this.container){this.container=new Element("div");this.options.elm.appendChild(this.container);this.scrollHandler=this.onScroll.bind(this);this.options.elm.observe("scroll",this.scrollHandler);this.setLoadingStatus(true)}this.setVisibleHeight();this.doScrollLoading=false;this.notify("onLoaded");if(A){this.setCount(A)}else{this.totalHeight=this.options.height}if(B){this.loadBlock(false,B)}else{this.checkAddBlocks()}},setLoadingStatus:function(A){if(A&&!this.loading){this.loading=new Element("div",{"class":"loading"}).setStyle({position:"absolute",left:"33%"}).update("Loading&hellip;");this.container.appendChild(this.loading)}else{if(!A&&this.loading){try{this.container.removeChild(this.loading)}catch(B){}}}},setEmptyMsg:function(){this.clear();if(!this.options.hideEmptyMsg){this.options.elm.appendChild(new Element("span").update(this.options.emptyMsg).addClassName("empty"))}this.notify("onLoaded")},setCount:function(A){this.totalHeight=A*this.options.height;this.container.setStyle({position:"relative",height:this.totalHeight+"px"});this.notify("onRowCount",this.lastAPIResult)},setVisibleHeight:function(A){if(A){this.options.visibleHeight=A}this.numVisible=Math.round(this.options.visibleHeight/this.options.height);this.options.elm.setStyle({height:this.options.visibleHeight+"px"})},clear:function(){if(this.container){this.options.elm.update("");this.options.elm.stopObserving("scroll",this.scrollHandler)}this.nodes={}}});Object.Event.extend(PBwiki.Components.ScrollArea);PBwiki.SideBar={classname:"PBwiki.SideBar",debug:false,itemList:{},initialize:function(){if(!$("sidebarModules")){return }$("sidebarModules").select("div.sidebox").each(function(C){if(C.id.indexOf("-")==-1){return }var B=C.id.split("-");var A=B[1];var D=PBwiki.SideBar[A.capitalize()+"Item"];if(D){PBwiki.SideBar.itemList[A]=new D(C,Object.clone(PBinfo.GetUserPrefs.sidebar[A]||{}))}});Sortable.SERIALIZE_RULE=/^[^_\-](?:[A-Za-z0-9\-\_]*)[-](.*)$/;Sortable.create("sidebarModules",{tag:"div",handle:"header",onUpdate:function(){Util.tracking("sidebar-reorder");if(this.debug){PBwiki.info(Sortable.sequence("sidebarModules"))}PBwiki.SideBar.saveState()}})},saveState:function(){if(!PBwiki.getUID()){return }var A={};Sortable.sequence("sidebarModules").each(function(B){if(B){A[B]=PBwiki.SideBar.itemList[B].getValidOptions()}});PBwiki.UserPrefs.set("sidebar",A)},navigatorRoot:function(){return"NestedFolderView"}};PBwiki.SideBar.Module=Class.create({classname:"PBwiki.SideBar.Module",validOptions:["collapsed","ysize","numChanges"],initialize:function(C,A){this.elm=C;this.title=C.down("h3");this.closeToggle=C.down("a.togglemodule");this.header=C.down("div.header");this.content=C.down("div.content");this.footer=C.down("div.footer");this.options=A;try{this.init();if(!this.options.collapsed){this.refresh()}}catch(B){this.content.update(B.message);PBinfo.CurrentWiki.debug=true;PBwiki.jsDebug(B.message)}if(this.closeToggle){this.closeToggle.observe("mousedown",this.toggle.bind(this))}this.header.observe("dblclick",this.toggle.bind(this))},loading:function(){this.content.setStyle({height:this.getModuleHeight()+"px"});this.content.update("");this.content.appendChild(new Element("div",{"class":"loading"}).update("Loading&hellip;"))},getModuleHeight:function(){return this.options.ysize},setupModuleResize:function(A){this.clearModuleResize();this.resizeOpts=A;this.footer.addClassName("resizeable");this.resizeDownFunction=this.resizeDown.bind(this);this.footer.observe("mousedown",this.resizeDownFunction)},resizeDown:function(A){A.stop();this.startY=Event.pointerY(A);this.resizeMoveFunction=this.resizeMove.bind(this);document.observe("mousemove",this.resizeMoveFunction);this.resizeUpFunction=this.resizeUp.bind(this);document.observe("mouseup",this.resizeUpFunction);document.onselectstart=function(){return false};Element.setStyle(document.body,{cursor:"row-resize"});this.resizeOpts.onStart()},resizeUp:function(B){document.stopObserving("mousemove",this.resizeMoveFunction);document.stopObserving("mouseup",this.resizeUpFunction);B.stop();var A=Event.pointerY(B);var C=A-this.startY;document.onselectstart=null;Element.setStyle(document.body,{cursor:"default"});this.resizeOpts.onSize(C);this.resizeOpts.onFinish(C)},resizeMove:function(B){B.stop();var A=Event.pointerY(B);var C=A-this.startY;this.resizeOpts.onSize(C)},clearModuleResize:function(){this.footer.removeClassName("resizeable");this.footer.stopObserving("mousedown",this.resizeDownFunction)},toggle:function(A){A.stop();if(this.elm.hasClassName("minimized")){this.elm.removeClassName("minimized");delete this.options.collapsed;this.onMaximized()}else{this.elm.addClassName("minimized");this.options.collapsed=true;this.onMinimized()}Util.tracking("sidebar-toggle");PBwiki.SideBar.saveState()},getValidOptions:function(){var A={};for(itm in this.options){if(this.validOptions.indexOf(itm)!=-1){A[itm]=this.options[itm]}}return A},init:function(){},refresh:function(){},onMinimized:function(){this.content.hide()},onMaximized:function(){this.content.show()}});PBwiki.SideBar.FoldersItem=Class.create(PBwiki.SideBar.Module,{classname:"PBwiki.SideBar.FoldersItem",name:"folders",title:"Navigator",minResizeHeight:100,init:function(){this.elm.addClassName("minibrowser");if(PBwiki.DragUploader&&!$("object_table_view")){this.dragUploader=new PBwiki.DragUploader({elm:this.elm,onGetFolder:function(){return this.view.param.folder||PBinfo.CurrentPage.folder||""}.bind(this),onUploaded:function(B){var A;B.success.each(function(C){A=C.name.toString()},this);this.selectView("NestedFolderView",{slide:false,itm:A,folder:this.view.param.folder||PBinfo.CurrentPage.folder||"",object_types:"folder,file"})}.bind(this)})}},selectView:function(B,A){if(this.view&&this.view.isLoading){return }delete this.view;this.view=new PBwiki.SideBar.FoldersItem[B](A,this).refresh()},getFolderObjectCount:function(B,D){if(!B||B==""){var A=0;D.split(",").each(function(E){A+=PBinfo.GetFolders["unfiled_"+E+"count"]});return A}var C=PBinfo.GetFolders.folders.find(function(E){return E.name==B});var A=0;D.split(",").each(function(E){if(C){A+=C[E+"count"]}});return A},getModuleHeight:function(){return(this.options.ysize||PBconst.kFoldersDefaultHeight)},refresh:function(){if(this.view){this.view.refresh()}else{this.selectView(PBwiki.SideBar.navigatorRoot(),{slide:false,folder:PBinfo.CurrentPage.folder||"",object_types:PBinfo.object_types})}this.setupNavigatorResize()},setupNavigatorResize:function(){this.setupModuleResize({onStart:function(){if(!this.view||this.view.isLoading){return }this.startHeight=this.getModuleHeight()-this.view.getControlHeight()}.bind(this),onSize:function(B){if(!this.view||this.view.isLoading){return }var A=this.startHeight+B;if(A+this.view.getControlHeight()<100){A=100-this.view.getControlHeight()}this.view.setHeight(A)}.bind(this),onFinish:function(A){if(!this.view||this.view.isLoading){return }this.options.ysize=this.view.newContent.getHeight();PBwiki.SideBar.saveState()}.bind(this)})},onMinimized:function(){this.clearModuleResize();this.content.hide()},onMaximized:function(){if(this.view){this.content.show();this.setupNavigatorResize()}else{this.refresh()}}});PBwiki.SideBar.FoldersItem.ObjectView=Class.create({classname:"PBwiki.SideBar.FoldersItem.ObjectView",debug:false,requestOpts:{},objectHeight:27,controlHeight:28,initialize:function(B,A){this.mb=A;this.content=A.content;this.isLoading=true;this.effectsActive=(typeof document.body.style.maxHeight!="undefined");this.visibleHeight=(this.mb.options.ysize||PBconst.kFoldersDefaultHeight);this.newContent=new Element("div",{"class":"content"});this.newList=new Element("div",{"class":"mblist"});this.newContent.appendChild(this.newList);this.setHeight();this.param=B;return this},refresh:function(){if(this.param.slide&&this.effectsActive){new PBEffect.SlideLeft({elm:this.content,onFinish:function(){this.isLoading=false}.bind(this),newElm:this.newContent,reverse:this.param.reverse})}else{this.content.parentNode.replaceChild(this.newContent,this.content);this.isLoading=false}return this},onLoaded:function(){var A=this.newContent.down("div.mblist");if(A){A.scrollTop=A.getAttribute("_scrollTop")||0;if(Prototype.Browser.IE){setTimeout(function(){A.setStyle({position:"relative"})},50)}}this.mb.content=this.newContent},setHeight:function(A){if(!A){A=this.visibleHeight-this.getControlHeight()}this.newList.setStyle({height:A+"px"})},createFolderHeading:function(E){this.heading=new Element("div",{"class":"heading"});var C=(E.length>28)?E.toString().substring(0,28).escapeHTML()+"&hellip;":E.toString().escapeHTML();var B=Util.getFolderLink(E);this.folderTitle=new Element("a",{"class":(E=="")?"iconbutton unfiled":"iconbutton folder foldericon",href:B}).update(C||"Unfiled Items");var D,A;this.backButton=new Element("span",{"class":"folder_back"}).update("&nbsp;").observe("click",this.backLink.bind(this));this.heading.appendChild(this.backButton);this.heading.appendChild(this.folderTitle);this.newContent.insertBefore(this.heading,this.newContent.firstChild)},backLink:function(){backDestination="NestedFolderView";backOptions={folder:this.param.parent_folder,object_types:this.param.object_types,slide:true,reverse:true};this.mb.selectView(backDestination,backOptions)},createTabs:function(E,C){if(this.debug){PBwiki.info("createTabs: "+E)}this.tabs=new Element("div",{"class":"tabs"});var D=new Element("a",{"class":"pages-tab"}).addClassName("filter_link").update("Pages");var B=new Element("a",{"class":"files-tab"}).addClassName("filter_link").update("Files");D.observe("click",this.selectTab.bindAsEventListener(this,"NestedFolderView",{parent_folder:this.param.parent_folder,object_types:"folder,page",slide:true}));B.observe("click",this.selectTab.bindAsEventListener(this,"NestedFolderView",{parent_folder:this.param.parent_folder,object_types:"folder,file",slide:true}));D.href=B.href="";(E=="pages")?D.addClassName("active"):B.addClassName("active");var A=Util.getFolderLink(this.param.folder);if(PBwiki.feature("gui")){A=A.replace("ViewFolder","ViewFolderNewGui")}this.optionsLink=new Element("a",{"class":"folder_properties",href:C||A});this.optionsLink.appendChild(new Element("span"));this.optionsLink.appendChild(document.createTextNode("options"));this.tabs.appendChild(this.optionsLink);if(E){this.tabs.appendChild(D);this.tabs.appendChild(B)}this.newContent.appendChild(this.tabs)},getControlHeight:function(){var A=0;if(this.tabs){A+=this.controlHeight}if(this.heading){A+=this.controlHeight}return A},renderObjectRow:function(F,D,A,G){if(!A){A=D.type||this.type}F.className="mb"+A;if(G%2==(this.param.folder?1:0)){F.addClassName("alternate")}var C=Util.getObjectLink(D);if(A=="folder"){F.observe("click",this.folderLink.bind(this,D));F.appendChild(new Element("a",{href:"javascript:void(0);","class":"iconbutton folder foldericon"}).update(D.name.toString().escapeHTML()))}else{if(A=="page"){var E=new Element("a",{href:C}).update(D.name.toString().escapeHTML());F.appendChild(E)}else{if(A=="file"){var B=Util.iconMap[Util.getFileExtension(D.name.toString())];var E=new Element("a",{href:C}).addClassName("iconbutton fileicon").addClassName(B).update(D.name.toString().escapeHTML());F.appendChild(E);Util.addObjectTooltip(F,D)}}}if(typeof E!=="undefined"&&PBinfo.CurrentObject===D.oid){E.setStyle({fontWeight:"bold"})}return F},setupScrollableArea:function(){this.requestOpts.folder=this.param.folder;this.scrollable=new PBwiki.Components.ScrollArea({visibleHeight:this.visibleHeight-this.getControlHeight(),elm:this.newList,height:this.objectHeight,count:this.getObjectCount(),op:this.apiMethod,args:this.getRequestOpts(),dataKey:this.dataKey||this.type+"s",cacheTimes:this.cacheTimes,nodeClass:"mb"+this.type,onRowRender:this.renderObjectRow.bind(this),onLoaded:this.onLoaded.bind(this),emptyMsg:"No "+this.type+"s",itm:this.param.itm||((this.param.folder==PBinfo.CurrentPage.folder)?PBinfo.CurrentPage.page:false),key:this.key})},selectTab:function(C,A,B){C.stop();Object.extend(B,{folder:this.param.folder,slide:false});this.mb.selectView.bind(this.mb,A,B)()},getRequestOpts:function(){return this.requestOpts}});PBwiki.SideBar.FoldersItem.NestedFolderView=Class.create(PBwiki.SideBar.FoldersItem.ObjectView,{classname:"PBwiki.SideBar.FoldersItem.NestedFolderView",apiMethod:"GetObjectsNOM",dataKey:"objects",requestOpts:{sortby:"name",object_types:"folder,page"},cacheTimes:["foldertime","filetime","pagetime","permtime"],folderLink:function(A){this.mb.selectView.bind(this.mb,"NestedFolderView",{parent_folder:this.param.folder,object_types:this.param.object_types,folder:A.name,count:A.count,slide:true})()},starredLink:function(){this.mb.selectView.bind(this.mb,"StarredView",{slide:true})()},refresh:function($super){$super();if(this.param.folder){this.createFolderHeading(this.param.folder)}PBwiki.UserPrefs.Stars.get_starred_objects(function(D){this.starredObjects=D}.bind(this));if(PBwiki.getUID()&&!this.param.folder){var C=new Element("div").setStyle({position:"relative",height:"27px"});var B=new Element("div",{"class":"mbfolder"}).observe("click",this.starredLink.bind(this,{name:""}));B.setStyle({position:"absolute",top:0});var A=new Element("a",{href:"javascript:void(0);","class":"iconbutton starred"}).update("Starred Pages and Files");B.appendChild(A);C.appendChild(B);this.newList.appendChild(C)}this.newContent.appendChild(this.newList);this.createTabs(this.param.object_types=="folder,file"?"files":"pages");this.setupScrollableArea();this.setHeight();return this},setupScrollableArea:function(){this.requestOpts.folder=this.param.folder;this.scrollable=new PBwiki.Components.ScrollArea({visibleHeight:this.visibleHeight-this.getControlHeight(),elm:this.newList,height:this.objectHeight,op:this.apiMethod,args:this.getRequestOpts(),dataKey:this.dataKey||this.type+"s",cacheTimes:this.cacheTimes,onRowRender:this.renderObjectRow.bind(this),onLoaded:this.onLoaded.bind(this),onFirstBlock:function(A){if(A.parents&&A.parents.length>0){this.param.parent_folder=A.parents[0].name}if(this.newContent.down("a.files-tab")){this.newContent.down("a.files-tab").update(A._total_file?"Files":"No Files")}}.bind(this),emptyMsg:"No "+(this.param.object_types=="folder,file"?"files":"pages"),itm:this.param.itm||((this.param.folder==PBinfo.CurrentPage.folder)?PBinfo.CurrentPage.page:false),key:this.key})},getRequestOpts:function(){if(this.param.object_types){this.requestOpts.object_types=this.param.object_types}if(PBwiki.feature("gui")){delete this.requestOpts.object_types}return Object.extend(this.requestOpts,{folder:this.param.folder})},getObjectCount:function(){return this.mb.getFolderObjectCount(this.param.folder,this.param.object_types||"folder,page")}});PBwiki.SideBar.FoldersItem.StarredView=Class.create(PBwiki.SideBar.FoldersItem.ObjectView,{classname:"PBwiki.SideBar.FoldersItem.StarredView",type:"page",createStarredHeading:function(){this.heading=new Element("div",{"class":"heading"});this.starredTitle=new Element("a",{"class":"iconbutton starred",href:""}).update("Starred Pages and Files");this.backButton=new Element("span",{"class":"folder_back"}).update("&nbsp;").observe("click",this.mb.selectView.bind(this.mb,PBwiki.SideBar.navigatorRoot(),{folder:"",slide:true,reverse:true})).update(" ");this.heading.appendChild(this.backButton);this.heading.appendChild(this.starredTitle);this.newContent.insertBefore(this.heading,this.newContent.firstChild)},refresh:function($super){$super();PBwiki.UserPrefs.Stars.get_starred_objects(function(A){this.createStarredHeading();this.starredObjects=A;A.each(function(B){this.newList.appendChild(this.renderObjectRow(new Element("div",{"class":"mbpage"}),B))}.bind(this));if(A.length==0){this.newList.appendChild(new Element("span").update("No Starred Items").addClassName("empty"))}if(PBwiki.getUID()){this.createTabs(false,"/user/"+PBwiki.getUID())}this.setHeight();this.onLoaded()}.bind(this));return this},getObjectCount:function(){return PBinfo.CurrentWiki.starredcount}});PBwiki.SideBar.SidebarItem=Class.create(PBwiki.SideBar.Module,{classname:"PBwiki.SideBar.SidebarItem",name:"sidebar"});PBwiki.SideBar.RecentactivityItem=Class.create(PBwiki.SideBar.Module,{classname:"PBwiki.SideBar.RecentactivityItem",name:"recentactivity",title:"Recent Activity",cacheTimes:["pagetime","filetime","permtime","foldertime","commenttime"],changeOpIcons:{added:"createpage","added via email":"emailicon",removed:PBwiki.feature("gui")?"pageremoved":"pageremovedicon","revision removed":"revisionremoved",deleted:"revisionremoved",changed:"pageediticon",edited:"pageediticon",completed:"pageediticon",reverted:"reverticon",uploaded:"uploadfiles","commented on":"commenticon"},template:'<ul id="recentactivity">#{changeItems}</ul><a class="moreactivity" href="/changes.php">More activity...</a>',row:'<li class="#{icon}"><a class="ellipses preview" time="#{time}" href="#{url}">#{escapedName}</a>#{op_word} by #{userLink}</li>',rowUserUpdate:'<li class="#{icon} user_update">#{userLink} &#8220;<span class="user_update">#{updateMessage}</span>&#8221;</li>',init:function(){document.observe("event:_list",this.mergeNewEvents.bindAsEventListener(this));document.observe("live:changelist",this.liveChangeListener.bindAsEventListener(this));if(!this.options){this.options={}}if(!this.options.ysize){this.options.ysize=90}if(PBwiki.feature("gui")){this.changeOpIcons=Object.extend(this.changeOpIcons,{added:"pageadd",changed:"pageedit",edited:"pageedit",completed:"pageedit"})}if($("new-recent-activity-refresh")){$("new-recent-activity-refresh").observe("click",function(A){if(A){A.stop()}$("new-recent-activity").hide();this.loading();this.refresh()}.bindAsEventListener(this))}},liveChangeListener:function(A){if(PBinfo.CurrentWiki&&A.memo&&A.memo.context&&A.memo.context.wiki===PBinfo.CurrentWiki.name&&!this.alreadyInChanges(A.memo)){this.checkNewActivityCount()}},alreadyInChanges:function(A){if(!this.changes||!A.change||!A.change.hash){return true}return this.changes.pluck("hash").include(A.change.hash)},checkNewActivityCount:function(){if(!this.changes||!this.changes.length>0){return }new PBwiki.APIRequest("GetChanges",{after_hash:this.changes.pluck("hash")[0]},{onSuccess:function(A){this.setNewRecentActivityCount(A.changes.length)}.bind(this),onFailure:this.setNewRecentActivityCount.bind(this,0)})},setNewRecentActivityCount:function(A){if(this.options.collapsed){return }if(A>0){$("new-recent-activity-count").update(A);if(A==1){$("new-recent-activity-plural").update("")}else{$("new-recent-activity-plural").update("s")}$("new-recent-activity").show()}else{$("new-recent-activity").hide();$("new-recent-activity-count").update(A)}},refresh:function(){new PBwiki.APIRequest("GetChanges",{count:this.getNumberChanges()},{cacheability:this.cacheTimes,onSuccess:this.update.bind(this),onFailure:this.showNoChanges.bind(this)})},getNumberChanges:function(){return(parseInt(this.options.numChanges)||PBconst.kRecentChangesNumber)},mergeNewEvents:function(B){if(B.memo.length>0){var A=B.memo.reverse();var C=0;var D=this.changes[0].toJSON();A.each(function(E){if(E.toJSON()===D){throw $break}else{C++}});this.changes.splice(-C);this.update({changes:A.splice(0,C).concat(this.changes)})}},update:function(F){$("new-recent-activity").hide();$("new-recent-activity-count").update("0");var B="";var E=new Template(this.row);var D=new Template(this.rowUserUpdate);var C=0;this.changes=F.changes;F.changes.each(function(G){if(G.type=="userupdate"){G.icon="pageicon";G.updateMessage=G.data.escapeHTML();G.userClass="user";G.userLink=Util.authorLinkFromObject(G);B+=D.evaluate(G)}else{G.icon=this.changeOpIcons[G.op_word]||"pageicon";if(G.type=="folder"){G.icon="foldericon"}G.escapedName=G.title.toString().escapeHTML();G.userClass="user";G.userLink=Util.authorLinkFromObject(G);B+=E.evaluate(G)}C++;if(C==this.getNumberChanges()){throw $break}}.bind(this));if(F.changes.length==0){this.showNoChanges()}else{this.content.update(new Template(this.template).evaluate({changeItems:B}))}Util.addLinkTooltips(this.content);this.currentChanges=this.content.down("ul");this.content.setStyle({height:""});var A=(this.content.down("a"))?this.content.down("a").getHeight():0;this.currentHeight=this.content.getHeight()-(parseInt(this.content.getStyle("paddingTop"))*2)-A;this.clearModuleResize();this.setupModuleResize({onStart:function(){this.currentChanges.setStyle({position:"relative",overflow:"hidden",marginBottom:"5px"})}.bind(this),onSize:function(G){this.currentChanges.setStyle({height:(this.currentHeight+G)+"px"})}.bind(this),onFinish:function(H){this.options.numChanges=Math.round((this.currentHeight+H)/52);if(this.options.numChanges>PBconst.kRecentChangesMax){this.options.numChanges=PBconst.kRecentChangesMax}var G=(this.content.down("a"))?this.content.down("a").getHeight():0;this.content.setStyle({height:(this.options.numChanges*52)+G+"px",position:"static",overflow:"",marginBottom:""});this.refresh();PBwiki.SideBar.saveState()}.bind(this)})},showNoChanges:function(){this.content.update("There are no recent changes on this workspace.")},onMinimized:function(){this.content.update("");$("new-recent-activity").hide();this.clearModuleResize()},onMaximized:function(){this.refresh()}});PBwiki.SideBar.AddusersItem=Class.create(PBwiki.SideBar.Module,{classname:"PBwiki.SideBar.AddusersItem",name:"addusers",refresh:function(){this.errMsg=this.content.down("p.validation-error");this.email=this.content.down(".add_user_email");new InputText(this.email);this.content.down(".add_user_form").observe("submit",function(C){C.stop();var A=this.email.value;if(this.email.value==this.email.getAttribute("placeholder")){this.doErrorMessage("Please enter an email address");return }var B=Util.is_valid_email(A);if(B!==true){this.doErrorMessage(B);return }new PBwiki.APIRequest("AddUser",{email:A,perm:"write",invite:true,demote:false},{onSuccess:this.addUserSuccess.bind(this),onFailure:this.doErrorMessage.bind(this)});Util.tracking("share-this-workspace")}.bind(this))},doErrorMessage:function(A){this.errMsg.update(A).show();if(this.errTimer){clearTimeout(this.errTimer)}this.errTimer=setTimeout(function(){this.errMsg.hide();this.errTimer=null}.bind(this),5000)},addUserSuccess:function(A){if(A.info=="added"||A.info=="created"||A.info=="accepted"){this.appendToAddList("Added "+A.email)}else{this.appendToAddList(A.email+" already exists")}this.email.value="";this.email.focus();this.errMsg.hide()},appendToAddList:function(B){if(!this.emailList){this.emailList=new Element("ul",{className:"added-emails"});this.errMsg.insert({after:this.emailList})}var A=new Element("li",{className:"iconbutton accepticon"}).update(B);this.emailList.appendChild(A);setTimeout(function(){A.style.display="none"},4000)},onMaximized:function(){this.refresh()}});PBwiki.init(PBwiki.SideBar);if(typeof (PBEffect)=="undefined"){var PBEffect={}}PBEffect.SlideLeft=Class.create({classname:"PBEffect.SlideLeft",step:40,initialize:function(B){this.options=B;this.elm=B.elm;this.newElm=B.newElm;this.width=this.end=this.elm.getWidth();this.height=this.elm.getHeight();this.reverse=B.reverse;var A=this.elm.down("div.mblist");var C=(A)?A.scrollTop:0;this.container=new Element("div").setStyle({position:"relative",overflow:"hidden",width:this.width+"px",height:this.height+"px"});this.wrapper=new Element("div").setStyle({position:"relative"});this.elm.parentNode.insertBefore(this.container,this.elm);this.wrapper.appendChild(this.elm);this.wrapper.appendChild(this.newElm);this.container.appendChild(this.wrapper);this.elm.setStyle({position:"absolute",top:"0px",left:"0px",width:this.width+"px"});this.newElm.setStyle({position:"absolute",top:"0px",width:this.width+"px",left:(((this.reverse)?-1:1)*this.width)+"px"});if(A){if(Prototype.Browser.Gecko){A.setStyle({overflow:"hidden"})}A.scrollTop=C}this.duration=B.duration||300;this.time=0;this.effectTimer=setInterval(this.slide.bind(this),this.step)},checkListFix:function(){if(this.listFixed){return }var A=this.newElm.down("div.mblist");if(A){A.setStyle({overflow:"hidden"});this.listFixed=true}},slide:function(){if(this.time<this.duration){var C=this.time/this.duration;var D=(-Math.cos(C*Math.PI)/2)+0.5;var B=D*this.width;this.wrapper.setStyle({left:(((this.reverse)?1:-1)*B)+"px"});if(Prototype.Browser.Gecko){this.checkListFix()}this.time+=this.step}else{clearInterval(this.effectTimer);this.newElm.setStyle({position:"",left:0});this.wrapper.parentNode.replaceChild(this.newElm,this.wrapper);this.container.parentNode.replaceChild(this.newElm,this.container);this.elm.remove();var A=this.newElm.down("div.mblist");if(A){A.setStyle({overflow:""});A.scrollTop=A.getAttribute("_scrollTop")}this.notify("onFinish",this.height)}}});Object.Event.extend(PBEffect.SlideLeft);var Page={};Page.AccessKeys=Class.create({functions:{searchfocus:function(A){$("input-search").focus();$("input-search").fire("focus");PBwiki.debug("focus on search")},edit:function(B){if(PBinfo.CurrentPage.editor_v3){if(($("edit-tab")&&$("edit-tab").hasClassName("editpage"))||(PBwiki.feature("gui")&&$("page-edit"))){document.fire("ui:changeview",{view:"edit",offset:document.documentElement.scrollTop-$("wikicontent").cumulativeOffset()[1]})}}else{if(!Page.AjaxEdit.modeEnabled){var A=$$("#edit-tab a");if(A[0]){window.location=A[0].href;PBwiki.debug("editing")}}else{document.fire("ui:editview")}}},newtask:function(A){if(PBinfo.CurrentWiki){PBwiki.ResourceLoader.loadManifest("extras.js",function(){new PBwiki.DialogCommands.NewAction({on_empty_create_milestone:true})})}}},map:{},initialize:function(){this.addShortCut("¿",this.functions.searchfocus);this.addShortCut("e",this.functions.edit);if(PBwiki.userCanCreateTask()){this.addShortCut("k",this.functions.newtask)}},addShortCut:function(A,B){if(A.length==1){this.map[A]=function(D){if(typeof document.activeElement!=="undefined"&&document.activeElement){var C=document.activeElement.tagName;if(C==="INPUT"||C==="TEXTAREA"){return true}}B(D);return false}}}});Page.absolutizeUserContextSection=function(){if(!$("top-content")){return }document.body.appendChild($("top-content").addClassName("abs"))};Page.EditPage={classname:"Page.EditPage",cancel:false,FCKeditor:null,isLoaded:false,onFCKComplete:function(B){var A=B.memo.editorInstance;Page.EditPage.startEdit(A)},getEditor:function(){if(typeof (FCKeditorAPI)!="undefined"){return FCKeditorAPI.GetInstance("content")}},startEdit:function(A){PBwiki.debug("Page.EditPage: fck complete");$$("#edit-toolbar input, #edit-toolbar button, #edit-toolbar a").each(function(B){B.disabled=false;B.removeClassName("disabled")});Page.EditPage.handleTagEdit();$("edit-toolbar-outer").show();Event.observe(window,"resize",Page.EditPage.resizeContentPanel2);Page.EditPage.resizeContentPanel2()},resizeContentPanel2:function(){var C=$("content___Frame");var D=$("page-footer");var B=D?D.offsetTop+D.scrollHeight+parseInt(D.getStyle("marginBottom")):0;var A=C.clientHeight+document.documentElement.clientHeight-B;A=(A<310?310:A);C.style.height=A+"px";$("edit-toolbar").down(".iconbutton").style.position="relative";if(C.contentWindow.onresize){C.contentWindow.onresize()}},resizeContentPanel:function(){try{var E=$("page-col-2");var D=$("page-side-toolbar");var A=D.clientHeight+D.offsetTop-$("inner-page").offsetTop;var B=$$(".inlinepage.")[0];B.style.minHeight=A+"px"}catch(C){}},handleTagEdit:function(){if(window.location.hash=="#tags"&&$("tagfield")){$("tagfield").focus();var A=$("tag-settings").cumulativeOffset().top;window.scrollTo(0,A)}},initialize:function(){if(PBwiki.feature("ajaxedit")&&window.location.search.toString().indexOf("edit=")==-1){return }if($("content___Frame")){Page.EditPage.isLoaded=true;Event.observe(window,"resize",Page.EditPage.resizeContentPanel);document.observe("ui:fckeditor_oncomplete",Page.EditPage.onFCKComplete);Page.EditPage.resizeContentPanel();Page.EditPage.handleTagEdit();Page.EditPage.Tags.initialize();Page.Thingbar.doLoad();Page.EditPage.AutoSave.start();if(!Page.AjaxEdit.modeEnabled){window.onbeforeunload=Page.EditPage.beforeUnload;UserPrefs.Manager.goFullWidth()}}else{}},beforeUnload:function(A){A=A||window.event;try{if(!Page.EditPage.cancel){var C="You have unsaved changes. Continue and discard those changes?";A.returnValue=C;return C}}catch(B){}}};Page.EditPage.AutoSave={defaultSaveInterval:45,saveInterval:45,maxSaveInterval:150,pbSpelling:false,numWords:0,stop:function(){if(this.apiRequest){this.apiRequest.abortRequest()}if(this.timer){clearTimeout(this.timer);delete this.timer}if(this.reportTimer){clearTimeout(this.reportTimer);delete this.reportTimer}document.stopObserving("ui:autosaveTrigger",this.trigger);this.enabled=false},start:function(A){if(this.enabled){return }if(!A){A={}}this.useDrafts=!!A.draft;if(this.useDrafts){this.draft=A.draft;this.saveInterval=A.saveInterval}else{this.saveInterval=this.defaultSaveInterval}this.enabled=true;this.reportTimer=setInterval(this.report.bind(this),this.saveInterval*1000);this.enableEdit();this.timer=setTimeout(this.autoSaveTrigger.bind(this),this.saveInterval*1000);this.trigger=this.autoSaveTrigger.bind(this);document.observe("ui:autosaveTrigger",this.trigger)},autoSaveTrigger:function(){if(!Page.EditPage.AutoSave.enabled||(Page.AjaxEdit.modeEnabled&&!Page.AjaxEdit.editMode)){return }delete this.timer;PBwiki.debug("AutoSave: autosaving...");var A=Page.EditPage.getEditor().GetHTML();if(this.lastHTML&&this.saveTime&&this.lastHTML==A&&PBwiki.getTimestamp()-(this.saveTime.getTime()/1000)<this.maxSaveInterval&&!this.pbSpelling){this.refresh();return }if(this.useDrafts&&!this.pbSpelling){this.saveToDraft(A)}else{this.saveToAutosave(A)}},saveToAutosave:function(B){var C={onSuccess:this.onSuccess.bind(this,B),onFailure:this.autosaveFailure.bind(this)};var A={page:PBwiki.getPageName()};var D="PutAutosave";Page.AjaxEdit.checkSizeWarning(B.length);if(this.lastHTML&&this.lastHTML==B&&!this.pbSpelling){D="SetPageLock"}else{A.spellcheck=this.pbSpelling;C.parameters={html:B}}this.apiRequest=new PBwiki.APIRequest(D,A,C)},saveToDraft:function(D,A){var E={onSuccess:this.onSuccess.bind(this,D),onFailure:this.draftFailure.bind(this)};var C={draft_id:this.draft.draft_id,page:PBwiki.getPageName()};var F="PutDraft";if(!A){var B=new diff_match_patch();E.parameters={delta:B.diff_toDelta(B.diff_main(this.lastHTML,D)),version:this.draft.v}}else{E.parameters={html:D}}this.apiRequest=new PBwiki.APIRequest(F,C,E)},draftFailure:function(B,A){if(A===600){this.saveToDraft(Page.EditPage.getEditor().GetHTML(),true);return }else{}if(!this.enabled){return }this.report();this.refresh()},refresh:function(){if(!this.timer){this.timer=setTimeout(this.autoSaveTrigger.bind(this),this.saveInterval*1000)}},pageChanged:function(){return Page.EditPage.getEditor().IsDirty()},onSuccess:function(A,B){this.lastHTML=A;if(B.spellcheck){this.spellcheck=B.spellcheck;Page.EditPage.AutoSave.pbSpelling=false;document.fire("spellcheck:update",this.spellcheck)}if(B.draft){this.draft=B.draft}if(!B.lockinfo.hasLock){document.fire("ui:edit_lock_stolen",B.lockinfo)}else{this.saveTime=new Date();if(B.wordcount){this.numWords=B.wordcount}this.report();document.fire("ui:autosaveSuccess");this.refresh()}},autosaveFailure:function(A){if(!this.enabled){return }document.fire("ui:autosaveFailure",A);this.report();this.refresh()},disableEdit:function(){var A=$$("#edit-toolbar a.button")[0];A.addClassName("disabled");A.onclick=null;A.setAttribute("href","javascript:void(0);");$("cancelButton").onclick=null;$("cancelButton").addClassName("disabled");Page.EditPage.cancel=true;$("main-heading-sidebar-button").show()},enableEdit:function(){var A=$$("#edit-toolbar a.button")[0];if(A.hasClassName("disabled")){A.removeClassName("disabled");$("cancelButton").removeClassName("disabled");Page.EditPage.cancel=false}},report:function(){if(!this.saveTime){return }var A=((new Date()-this.saveTime)/1000/60).toFixed();if(this.numWords){var B="Saved "+this.numWords+" word"+((this.numWords>1)?"s":"")+" at "}else{var B="Draft saved "}B+=new Date(this.saveTime).strftime(PBconst.kPolicySimpleTimeFormat);B+=" ("+((A==0)?"less than a ":A);B+=" minute"+((A>1)?"s":"")+" ago)";$("autosave_msg").innerHTML=B}};Page.WikiPage=Class.create({classname:"Page.WikiPage",big_button:null,initialize:function(){this.initAccessKeys();this.initStar();this.accessKeyFunctions=new Page.AccessKeys();if($("revert-page")){$("revert-page").observe("click",this.onRevertPageClicked.bind(this))}if($("copy-page")){$("copy-page").observe("click",this.onCopyPageClicked.bind(this))}this.makeBigButton()},makeBigButton:function(){this.big_button=$("main-heading-sidebar-button");if(PBinfo.CheckPermissions.isWriter&&this.big_button){var B=$("sidebar-createpage");if(!B){return }var A=B.readAttribute("href");this.big_button.writeAttribute("href",A)}},onCopyPageClicked:function(A){Util.prompt("Save a copy as:",{title:A.element().innerText,okButtonLabel:"Copy",value:"Copy of "+PBinfo.GetPage.name,onConfirm:this.onCopyPageSubmitted.bind(this),maxLength:PBconst.kMaxPageNameLength})},onCopyPageSubmitted:function(A){Util.spinner("Copying page...");new PBwiki.APIRequest("CopyPage",{page:PBinfo.GetPage.name,revision:PBinfo.GetPage.mtime,destination_page:A},{onSuccess:function(){window.location="/"+encodeURIComponent(A)},onFailure:function(B){document.fire("ui:spinner-close");Util.alert("Unable to copy page: "+B,{title:"Error",delay:true})}.bind(this)})},onRevertPageClicked:function(C){C.stop();var B=C.element().getAttribute("ui:type");if(!confirm("Are you sure you wish to revert the "+B+" to this version?")){return }var A={};A[B]=C.element().getAttribute("ui:page");A.revision=C.element().getAttribute("ui:revision");var D="Revert"+(B==="file"?"File":"Page");new PBwiki.APIRequest(D,A,{onSuccess:function(){window.location=C.element().getAttribute("href")},onFailure:function(E){alert("An error occurred while trying to revert this "+B+".")}.bind(this)})},initAccessKeys:function(){document.observe("keydown",function(C){var B=String.fromCharCode(C.charCode?C.charCode:C.keyCode).toLowerCase();if(C.ctrlKey&&this.accessKeyFunctions.map[B]){var A=this.accessKeyFunctions.map[B](C);if(!A){C.stop()}}}.bind(this),true)},onStarClick:function(A){if(A){A.stop()}this.toggleStarState();$("pb-page-star").addClassName("working");PBwiki.UserPrefs.Stars.set_object_starred(this.starred,{onFailure:this.starPageError.bind(this),onSuccess:this.didStarPage.bind(this)})},onUnstarFromLink:function(){var A=new PBwiki.Components.UnstarBubble();A.show()},initStar:function(){if(!$("pb-page-star")){return }this.starred=$("pb-page-star").hasClassName("starred");Event.observe("pb-page-star","click",this.onStarClick.bind(this));document.observe("data:objectStarred",function(A){if(A.memo){this.starred=A.memo.starred;this.updateVisualState()}}.bind(this));if(PBwiki.History.getKey("unstar").getValue()){if(this.starred){window.setTimeout(this.onUnstarFromLink.bind(this),500)}}},didStarPage:function(A){$("pb-page-star").removeClassName("working")},starPageError:function(A){this.toggleStarState()},toggleStarState:function(A){this.starred=!this.starred;this.updateVisualState()},updateVisualState:function(){if(this.starred){$("pb-page-star").addClassName("starred")}else{$("pb-page-star").removeClassName("starred")}document.fire("ui:hideBubbles")},notifyOfComment:function(B){if(B.memo.title!==PBwiki.getPageName()){return }var D=$("comments").down("h3");var A=D.down("a");if(!A){var C=' &mdash; <a href="#" class="reload">New comments available</a>';D.insert(C);D.down("a").observe("click",function(E){window.location.reload()})}},notifyOfEdit:function(A){if(A.memo.title!==PBwiki.getPageName()){return }if($("new-revision-available")){var B='<a href="#" class="reload">New revision available as of '+Util.time_ago(PBwiki.getTimestamp()-A.memo.time-PBwiki.timeOffset)+" ago</a>";$("new-revision-available").update(B);$("new-revision-available").show();$("new-revision-available").down("a").observe("click",function(C){window.location.reload()})}}});PBwiki.init("DeletePage revision click bind",function(){$$("a.pb-delete-revision").invoke("observe","click",function(){if(!confirm("Are you sure you want to delete the revision?")){return }(new PBwiki.APIRequest("DeletePage",{page:this.getAttribute("page"),revision:this.getAttribute("rev")},{onSuccess:function(A){if(A.revcount==0){window.location.href="/w/browse/"}else{window.location.reload()}},onFailure:function(A){alert(A)},waitCursor:true,method:"post"}))})});PBwiki.init("Search List, add link tooltips",function(){if($$("ul.searchlist").length>0){Util.addLinkTooltips($$("ul.searchlist")[0])}});Page.EditPage.Tags={tagCloud:null,tagField:null,getTagObject:function(A){if(!Page.EditPage.Tags.tagObj||A){var B=Page.EditPage.Tags.tagField.value.strip().gsub(/(\s*,\s*)+/,",");B=B.gsub(/,\s*$|^,\s*/,"");Page.EditPage.Tags.tagObj=(B.blank()?[]:B.split(","))}return Page.EditPage.Tags.tagObj},writeTagObject:function(){Page.EditPage.Tags.tagField.value=Page.EditPage.Tags.getTagObject().join(", ")},initialize:function(){this.tagCloud=$("tagcloud");if(!this.tagCloud){return }this.tagField=$("tagfield");this.editTags=$("edit_tags");Page.EditPage.Tags.initialValue=$("tagfield").value;this.editTags.observe("click",function(A){A.stop();if(!PBinfo.CurrentPage.editor_v3){this.editTags.hide();$("tag-settings").show()}this.loadAllTags()}.bind(this))},IsDirty:function(){return(Page.EditPage.Tags.initialValue!=$("tagfield").value)},loadAllTags:function(){new PBwiki.APIRequest("GetTags",{},{cacheability:["tagtime"],onSuccess:this.onLoaded.bind(this)})},onLoaded:function(A){this.tagCloud.update("");if(A.tags&&!Object.isArray(A.tags)){$H(A.tags).each(function(B){this.tagCloud.appendChild(new Element("a",{href:"#"}).update(B.key.escapeHTML()));this.tagCloud.appendChild(document.createTextNode(",  "))}.bind(this));if(PBinfo.CurrentPage.editor_v3){PBwiki.currentView.resizeChromeHeight()}else{Page.AjaxEdit.resizeContentPanel()}}this.start()},start:function(){Page.EditPage.Tags.writeTagObject();Page.EditPage.Tags.unselectedLinks=$A(Page.EditPage.Tags.tagCloud.getElementsByTagName("a"));Page.EditPage.Tags.unselectedLinks.each(function(A){A=$(A);A.observe("click",Page.EditPage.Tags.handleTagClick);A.addClassName("unselected")});Page.EditPage.Tags.tagField.observe("keyup",Page.EditPage.Tags.handleFieldChange);Page.EditPage.Tags.tagField.observe("keydown",function(A){if(A.keyCode==13){Event.stop(A)}});Page.EditPage.Tags.handleFieldChange()},handleFieldChange:function(C){var D="#"+Page.EditPage.Tags.tagCloud.id+" a";var A=$$(D);var B=Page.EditPage.Tags.getTagObject(true);A.each(function(E){E.className="unselected";B.each(function(F){linkText=E.innerHTML;if(linkText==F){E.className="selected"}})})},addTag:function(A){Page.EditPage.Tags.tagObj.push(A)},removeTag:function(A){Page.EditPage.Tags.tagObj=Page.EditPage.Tags.tagObj.without(A)},handleTagClick:function(D){var C=Event.element(D);var A=C.firstChild.textContent||C.innerText;var B=Page.EditPage.Tags.getTagObject();(B.include(A)?Page.EditPage.Tags.removeTag(A):Page.EditPage.Tags.addTag(A));C.toggleClassName("selected").toggleClassName("unselected").blur();Page.EditPage.Tags.writeTagObject();Event.stop(D)}};Page.EditBubble={classname:"Page.EditBubble",initialize:function(){var A=$("edit-tab");Page.EditBubble.bubble=editBubble=$("edit-button-bubble");if(!A||!editBubble||!A.hasClassName("logintoedit")){return false}editBubble.getElementsBySelector("a.close")[0].observe("click",function(B){editBubble.hide();B.stop()});A.down().observe("click",Page.EditBubble.show);document.observe("click",function(){Page.EditBubble.bubble.hide()})},reposition:function(){var D=$("edit-tab");var B=D.cumulativeOffset();var C=D.getWidth();var A=(Page.EditBubble.bubble.getHeight()/2)-(D.getHeight()/2);B.left+=C;B.top-=A;Page.EditBubble.bubble.setStyle({top:B.top+"px",left:B.left+"px"})},show:function(A){Page.EditBubble.reposition();Page.EditBubble.bubble.show();Event.stop(A)}};Page.ImportFeedback={initialize:function(){if(!$("import-feedback")){return }$("import-feedback-close").observe("click",function(A){A.stop();$("import-feedback").hide()}.bind(this),true);$("import-feedback-no").observe("click",function(A){A.stop();new PBwiki.Components.ImportFeedbackBubble({convertID:$("import-feedback").readAttribute("ui:convert-id")})})}};Page.LastEditedDisplay=Class.create({classname:"Page.LastEditedDisplay",updateInterval:60,initialize:function(){if(!$("page-history-ago")||!PBinfo.GetPage||!PBinfo.GetPage.mtime){return }PBwiki.timeOffset=Math.round(PBwiki.getTimestamp()-PBinfo.CurrentPage.requesttime);setInterval(this.update.bind(this),this.updateInterval*1000);document.observe("ui:last_edited_update",this.update.bind(this))},update:function(){$("page-history-ago").update(Util.time_ago(PBwiki.getTimestamp()-PBinfo.GetPage.mtime-PBwiki.timeOffset)+" ago")}});Page.FixIPMPositioning=Class.create({classname:"Page.FixIPMPositioning",initialize:function(){if(!$("notifications")||!$("main-tools")){return }$("main-tools").style.minHeight=$("notifications").getDimensions().height+"px"}});PBwiki.init(Page.WikiPage);PBwiki.init(Page.EditPage);PBwiki.init(Page.EditBubble);PBwiki.init("Page.ImportFeedback",Page.ImportFeedback.initialize.bind(Page.ImportFeedback));PBwiki.init(Page.LastEditedDisplay);PBwiki.init(Page.FixIPMPositioning);PBwiki.init("pbwiki.autofocus.js",function(){if("autofocus" in document.createElement("input")){return }$$("input[type=text], input[type=password]").each(function(A){if(A.getAttribute("autofocus")!==null){A.focus()}})});PBwiki.CustomSecurity=Class.create({classname:"PBwiki.CustomSecurity",roles:[{index:0,value:"read",text:"Reader"},{index:1,value:"write",text:"Writer"},{index:2,value:"edit",text:"Editor"}],initialize:function(){if(!this.form){return }this.show_user_cards=true;this.user_map=new Object();this.group_roles=new Object();this.group_users=new Object();this.removed_users=new Array();this.removed_groups=new Array();this.api_requests_outstanding=0;this.unsaved_changes=false;this.unsaved_user_ids=new Array();this.unsaved_group_ids=new Array();this.table.style.visibility="hidden";this.loading_div.show();this.markAPIRequestStarted();new PBwiki.APIRequest("GetUsersInfos",{perm:"admin"},{allowDefer:true,method:"get",onSuccess:this.adminsReceived.bind(this),onFailure:function(B){alert(B);this.markAPIRequestReceived()}});var A=$$("form#"+this.form.id+" div.radio-container").first();new RadioButtonSelector(A);if(this.add_user_button){this.add_user_button.observe("click",this.addUserListener.bindAsEventListener(this))}if(this.add_group_button){this.add_group_button.observe("click",this.addGroupListener.bindAsEventListener(this))}this.save_button.observe("click",this.submitHandler.bindAsEventListener(this));if(this.starting_user_rules){this.starting_user_rules.each(this.addUser.bind(this))}if(this.starting_group_rules){this.starting_group_rules.each(function(B){var C=PBwiki.feature("network_user_groups")?"ListNetworkGroupUsers":"ListWorkspaceGroupUsers";this.markAPIRequestStarted();new PBwiki.APIRequest(C,{group_id:B.group_id},{method:"get",onSuccess:this.groupDataReceived.bind(this,B,B.role),onFailure:function(D){alert(D);this.markAPIRequestReceived()}})}.bind(this))}window.onbeforeunload=this.unloadListener.bindAsEventListener(this);$$("#security-save, #security-cancel, #foldersecuritysubmit").invoke("observe","click",function(B){this.unsaved_changes=false}.bindAsEventListener(this));$$("input[name=securitymode]").invoke("observe","click",this.radioListener.bindAsEventListener(this))},adminsReceived:function(A){this.admins=new Array();A.uids.each(function(C){this.admins.push(C.uid);var B=this.user_map[C.uid];if(!B){return }if(B.standalone&&$("user-"+C.uid)){this.changeToAdmin($("user-"+C.uid))}B.groups.each(function(D){this.changeToAdmin($("group-user-"+D+"-"+C.uid))}.bind(this))}.bind(this));this.markAPIRequestReceived()},changeToAdmin:function(B){B.select("select, input, a").each(function(C){C.up("td").remove(C)});var A=B.select("td");A[1].update("Administrator");if(A.length>2){A[2].update("&nbsp;")}},disableForm:function(){this.form_disabled=true;this.form.select("input, select").each(function(A){A.disabled=true})},enableForm:function(){this.form_disabled=false;this.form.select("input, select").each(function(A){A.disabled=false})},submitHandler:function(B){if(B){B.stop()}this.disableForm();var A=this.getSubmitAPIReqs();new PBwiki.MultiAPIRequest(A,{onAllComplete:this.submitComplete.bind(this)})},cancelHandler:function(A){if(A&&this.form_disabled){A.stop()}},radioListener:function(A){this.unsaved_changes=true},unloadListener:function(A){var A=A||window.event;if(!A||!this.unsaved_changes){return }if(A){A.returnValue="You have unsaved changes."}return"You have unsaved changes."},addUserListener:function(C){var A=this.users_select;var B={uid:A.getValue(),username:A.options[A.selectedIndex].text,role:"read"};if(this.userHasPerms(B.uid)){alert(B.username+" is already in the table");return }this.addUser(B);this.unsaved_user_ids.push(B.uid);this.unsaved_changes=true},removeUserListener:function(B,A){B.stop();this.removeUser(A);this.unsaved_user_ids.push(A);this.unsaved_changes=true},addUser:function(A){var B=this.createTableRow({id:A.uid,name:A.username,role:this.userIsAdmin(A.uid)?"admin":A.role,remove_listener:this.removeUserListener.bindAsEventListener(this,A.uid),role_listener:this.userRoleListener.bindAsEventListener(this,A.uid),usercard:true,uid:A.uid});B.id="user-"+A.uid;this.table.down("tbody.users").appendChild(B);if(!this.user_map[A.uid]){this.user_map[A.uid]={standalone:false,groups:new Array()}}this.user_map[A.uid].standalone=true;this.removed_users=this.removed_users.without(A.uid)},removeUser:function(A){var B=$("user-"+A);if(!B){return }B.remove();this.updateRowColors();if(this.user_map[A]){this.user_map[A].standalone=false}this.removed_users.push(A)},updateRowColors:function(){var A=0;var B=this.table.select("tbody tr");B.each(function(C){C.className=(A%2?"even":"odd");A++})},userRoleListener:function(D,A){if(PBwiki.feature("network_user_groups")){var C=D.element();if(C.tagName.toLowerCase()!=="select"){C=C.up("select")}var B=C.options[C.selectedIndex].value;this.synchronizeUserPermission(A,B)}this.unsaved_user_ids.push(A);this.unsaved_changes=true},synchronizeUserPermission:function(B,A){var C=$$("table#securitytable select").findAll(function(E){return(E.id.indexOf(B)>-1)});if(C.length==0){return }var D="read";C.each(function(E){var G=E.id.split("-");if(G.length!==3){return }var I=G[1];var H=$("select-"+I);var F=H.options[H.selectedIndex].value;D=this.maxRole(D,F)}.bind(this));C.each(function(E){this.resetSelectOptions(E,D,A)}.bind(this))},resetSelectOptions:function(A,B,D){A.options.length=0;var C=0;this.roles.each(function(E){if(this.roleCmp(B,E.value)===-1){return }A.options[A.options.length]=new Option(E.text,E.value);if(D===E.value){C=A.options.length-1}}.bind(this));A.selectedIndex=C},addGroupListener:function(C){var A=this.groups_select;var E={group_id:A.getValue(),name:A.options[A.selectedIndex].text};var D=$("group-"+E.group_id);if(D){alert(E.name+" is already in the table");return }var B="read";this.addGroup(E,B);this.unsaved_group_ids.push(E.group_id);this.unsaved_changes=true},removeGroupListener:function(B,A){if(B){B.stop()}this.removeGroup(A);this.unsaved_group_ids.push(A);this.unsaved_changes=true;this.group_users[A].each(function(C){this.synchronizeUserPermission(C.uid,null)}.bind(this))},groupDataReceived:function(C,B,A){this.group_users[C.group_id]=A.users;this.addGroup(C,B);this.markAPIRequestReceived()},addGroup:function(B,D){if(!this.group_users[B.group_id]){var C=PBwiki.feature("network_user_groups")?"ListNetworkGroupUsers":"ListWorkspaceGroupUsers";this.markAPIRequestStarted();new PBwiki.APIRequest(C,{group_id:B.group_id},{method:"get",onSuccess:this.groupDataReceived.bind(this,B,D),onFailure:function(E){alert(E);this.markAPIRequestReceived()}});return }var A=this.createTableRow({id:B.group_id,name:B.name,role:D,remove_listener:this.removeGroupListener.bindAsEventListener(this,B.group_id),role_listener:this.groupRoleListener.bindAsEventListener(this,B.group_id)});A.id="group-"+B.group_id;this.table.down("tbody.groups").appendChild(A);this.group_users[B.group_id].each(function(H){var G=D;var F=$("select-"+H.uid);var E=F?F.options[F.selectedIndex].value:false;if(PBwiki.feature("network_user_groups")){$$("table#securitytable select").each(function(J){if(J.id.indexOf(H.uid)==-1){return }E=this.maxRole(E,J.options[J.selectedIndex].value);var L=J.id.split("-")[1];var K=$("select-"+L);G=this.maxRole(G,K.options[K.selectedIndex].value)}.bind(this))}var I=this.maxRole(E,D);this.appendGroupUserRow(B,H,I,G)}.bind(this));this.group_roles[B.group_id]=D;this.removed_groups=this.removed_groups.without(B.group_id)},appendGroupUserRow:function(E,C,F,B){if($("user-"+C.uid)){var A=$("user-"+C.uid);A.remove();this.user_map[C.uid].standalone=false}var D=this.createTableRow({id:E.group_id+"-"+C.uid,name:C.name||C.email||C.username,role:this.userIsAdmin(C.uid)?"admin":F,role_listener:this.userRoleListener.bindAsEventListener(this,C.uid),minimum_role:B,usercard:true,uid:C.uid,indent:"20px"});D.id="group-user-"+E.group_id+"-"+C.uid;this.table.down("tbody.groups").appendChild(D);if(!this.user_map[C.uid]){this.user_map[C.uid]={standalone:false,groups:new Array()}}this.user_map[C.uid].groups.push(E.group_id);this.removed_users=this.removed_users.without(C.uid)},groupRoleListener:function(D,C){var B=$("select-"+C);var E=B.options[B.selectedIndex].value;var A=this.group_roles[C];this.group_users[C].each(function(I){if(this.userIsAdmin(I.uid)){return }var G=$("select-"+C+"-"+I.uid);var F=G.options[G.selectedIndex].value;var H;if(this.maxRole(A,E)==E){H=this.maxRole(E,F)}else{if(F==A){H=E}else{H=F}}this.resetSelectOptions(G,E,H);this.synchronizeUserPermission(I.uid,H)}.bind(this));this.group_roles[C]=E;this.unsaved_group_ids.push(C);this.unsaved_changes=true},removeGroup:function(A){var B=$("group-"+A);if(!B){return }B.remove();this.removed_groups.push(A);this.updateRowColors();this.group_users[A].each(function(D){var C=D.uid;$("group-user-"+A+"-"+C).remove();this.user_map[C].groups=this.user_map[C].groups.without(A)}.bind(this));delete this.group_roles[A]},markAPIRequestStarted:function(){this.api_requests_outstanding++;if(!this.form_disabled){this.disableForm()}},markAPIRequestReceived:function(){this.api_requests_outstanding--;if(this.api_requests_outstanding===0){this.enableForm();this.loading_div.hide();this.table.style.visibility="visible"}},userHasPerms:function(A){return this.user_map[A]&&(this.user_map[A].standalone||this.user_map[A].groups.length>0)},maxRole:function(B,A){return(this.roleCmp(B,A)===-1)?B:A},roleCmp:function(D,C){var B=this.roles.find(function(G){return G.value===D});var A=this.roles.find(function(G){return G.value===C});var F=(B)?B.index:0;var E=(A)?A.index:0;return(F>E)?-1:(F<E)?1:0},createTableRow:function(B){if(!B.minimum_role){B.minimum_role="read"}var G=new Element("td");if(this.show_user_cards&&B.usercard&&B.uid){var C=new Element("a",{className:"usercard_trigger securitytable-username","ui:uid":B.uid,href:"javascript:void(0)"});C.update(B.name.escapeHTML());G.appendChild(C)}else{G.appendChild(document.createTextNode(B.name))}if(B.indent){G.style.paddingLeft=B.indent}var E=new Element("td");if(B.role==="admin"){E.appendChild(document.createTextNode("Administrator"))}else{var F=new Element("select",{name:"select-"+B.id,id:"select-"+B.id});var H=0;this.resetSelectOptions(F,B.minimum_role,B.role);if(B.role_listener){F.observe("change",B.role_listener)}E.appendChild(F)}var D=new Element("td");if(B.remove_listener){var A=new Element("a",{className:"iconbutton deleteicon",href:"javascript:void(0);",onclick:"void(0)"}).update("&nbsp;");A.observe("click",B.remove_listener)}else{var A=document.createTextNode(" ")}D.appendChild(A);var I=new Element("tr");I.setAttribute("ui:uid",B.uid);I.setAttribute("ui:name",B.name);I.appendChild(G);I.appendChild(E);I.appendChild(D);return I},userIsAdmin:function(A){if(this.admins){return(this.admins.indexOf(A)>-1)}else{return false}},getCustomAPIReqs:function(){var B=new Array();var A=new Array();this.table.select("tr").each(function(I){if(!I.down("select")){return }var C=I.down("select");var F=C.options[C.selectedIndex].value;if(I.id.startsWith("group-user-")){var H=I.id.substring(11,I.id.length-41);var E=I.id.substring(I.id.length-40);var G=$("group-"+H).down("select");var D=G.options[G.selectedIndex].value;if(F!==D&&this.unsaved_user_ids.indexOf(E)!==-1){A.push(this.getUserAPIRequest(E,F))}}else{if(I.id.startsWith("user-")){var E=I.id.substring(I.id.length-40);if(this.unsaved_user_ids.indexOf(E)!==-1){A.push(this.getUserAPIRequest(E,F))}}else{if(I.id.startsWith("group-")){var H=I.id.substring(6);if(this.unsaved_group_ids.indexOf(H)!==-1){B.push(this.getGroupAPIRequest(H,F))}}}}}.bind(this));B=this.removed_groups.map(function(C){return this.getGroupAPIRequest(C,"deny")}.bind(this)).concat(B);A=this.removed_users.map(function(C){return this.getUserAPIRequest(C,"deny")}.bind(this)).concat(A);return B.concat(A)}});PBwiki.PageSecurity=Class.create(PBwiki.CustomSecurity,{initialize:function($super){if(!PBwiki.feature("page_security")){return }if(!$("foldersecurityform")){return }if(typeof PBinfo.CurrentFile!=="undefined"){this.file=PBinfo.CurrentFile.name}else{this.page=PBinfo.CurrentPage.page}this.form=$("foldersecurityform");this.table=$("securitytable");this.loading_div=$("securitytable-loading");this.users_select=$("foldersecurityusers");this.add_user_button=$("securityadduserbutton");this.groups_select=$("foldersecuritygroups");this.add_group_button=$("securityaddgroupbutton");this.save_button=$("security-save");this.cancel_button=$("security-cancel");if(window.user_security_rules){this.starting_user_rules=window.user_security_rules}else{this.starting_user_rules=new Array()}if(window.group_security_rules){this.starting_group_rules=window.group_security_rules}else{this.starting_group_rules=new Array()}$super()},getSubmitAPIReqs:function(){var B=this.form.select("input[type=radio]");var C=B.find(function(G){return G.checked});var F=C.value;var A=new Array();var D={securitytype:F};var E="SetPageSecurityType";if(typeof PBinfo.CurrentObject!=="undefined"){D.oid=PBinfo.CurrentObject;E="SetSecurityType"}else{D.page=this.page}if($("published")){D.published=$("published").checked}if(PBwiki.feature("additive_custom_security")&&F=="custom"){D.default_perm=$("default_perm").value}A.push([E,D,{onFailure:function(G){alert(G);this.enableForm()}.bind(this)}]);if(F=="custom"){A=A.concat(this.getCustomAPIReqs())}return A},getUserAPIRequest:function(A,C){var B=function(D){alert(D);this.enableForm()}.bind(this);if(typeof this.file!=="undefined"){return["SetFileUserPermission",{file:this.file,uid:A,perm:C},{onFailure:B}]}else{return["SetPageUserPermission",{page:this.page,uid:A,perm:C},{onFailure:B}]}},getGroupAPIRequest:function(C,B){var A=function(D){alert(D);this.enableForm()}.bind(this);if(typeof this.file!=="undefined"){return["SetFileGroupPermission",{file:this.file,group_id:C,perm:B},{onFailure:A}]}else{return["SetPageGroupPermission",{page:this.page,group_id:C,perm:B},{onFailure:A}]}},submitComplete:function(){if(this.form_disabled){document.location.href=PBinfo.CurrentPage.page_link+"?securitymsg=true"}}});PBwiki.FolderSecurity=Class.create(PBwiki.CustomSecurity,{initialize:function($super,A){if(!PBwiki.feature("folder_security")){return }if(!$("foldersecurityform")){return }this.options=A;this.form=$("foldersecurityform");this.table=$("securitytable");this.loading_div=$("securitytable-loading");this.users_select=$("foldersecurityusers");this.add_user_button=$("securityadduserbutton");this.groups_select=$("foldersecuritygroups");this.add_group_button=$("securityaddgroupbutton");this.save_button=$("foldersecuritysubmit");this.cancel_button=$("security-cancel");$super();this.show_user_cards=false},getSubmitAPIReqs:function(){var C=this.form.select("input[type=radio]");var D=C.find(function(F){return F.checked});var E=D.value;var B=new Array();var A={folder:this.options.folder,enabled:(E=="custom")};if(PBwiki.feature("additive_custom_security")&&E=="custom"){A.default_perm=$("default_perm").value}B.push(["SetFolderHasCustomSecurity",A,{onFailure:function(F){alert(F);this.enableForm()}.bind(this)}]);B.push(["SetFolderPublic",{folder:this.options.folder,"public":$("foldersecuritypublished").checked},{onFailure:function(F){alert(F);this.enableForm()}.bind(this)}]);if(E=="custom"){B=B.concat(this.getCustomAPIReqs())}return B},getUserAPIRequest:function(A,B){return["SetFolderUserPermission",{folder:this.options.folder,uid:A,perm:B},{onFailure:function(C){alert(C);this.enableForm()}.bind(this)}]},getGroupAPIRequest:function(B,A){return["SetFolderGroupPermission",{folder:this.options.folder,group_id:B,perm:A},{onFailure:function(C){alert(C);this.enableForm()}.bind(this)}]},submitComplete:function(){if(this.form_disabled){if(this.options.onSaveComplete){this.options.onSaveComplete()}PBwiki.DialogFactory.close()}}});PBwiki.WhoCanSee=Class.create({classname:"PBwiki.WhoCanSee",kMaxUsers:500,initialize:function(B){if(B&&B.page){this.page=B.page}else{if(B&&B.file){this.file=B.file}else{if(B&&B.folder){this.folder=B.folder}else{if(!PBinfo||!PBinfo.CurrentPage){return }else{if(typeof PBinfo.CurrentFile!=="undefined"){this.file=PBinfo.CurrentFile.name}else{this.page=PBinfo.CurrentPage.page}}}}}var A=$$("div.who-can-see div.expand a");if(A.length===0){return }A.each(function(F){var C=F.up("div.who-can-see");var E=C.id.substring(12);F.observe("click",this.expandHandler.bindAsEventListener(this,E));var D=$("who-can-see-"+E+"-close");if(D){D.hide()}}.bind(this));if((this.page||this.file)&&$("published")){$("published").observe("click",this.publishedHandler.bindAsEventListener(this));this.publishedHandler()}else{if(this.folder&&$("foldersecuritypublished")){$("foldersecuritypublished").observe("click",this.folderPublishedHandler.bindAsEventListener(this));this.folderPublishedHandler()}}if(PBwiki.feature("additive_custom_security")){$$("#who-can-see-custom-expand a").first().observe("click",function(){$("who-can-see-custom-expand").hide();$("customsecurity").hide()});$("who-can-see-custom-close").observe("click",function(){$("customsecurity").show();$("who-can-see-custom-close").hide();$("who-can-see-custom-content").hide();$("who-can-see-custom-expand").show()})}$$("div.selectrow").each(function(C){var D=C.down("div.who-can-see div.content");if(!D){return }C.observe("ui:select",function(){D.scrollTop=0;var E=D.down("ul.rolehelp");if(E){E.hide()}}.bind(this))}.bind(this));if(this.folder&&$("who-can-see-default-public")&&$("who-can-see-default-publicedit")){if(PBinfo.CurrentWiki.isPublic){$("who-can-see-default-public").show();if(PBinfo.CurrentWiki.publicedit){$("who-can-see-default-publicedit").show()}}}},publishedHandler:function(A){if($("published").checked){if($("who-can-see-default-folder-published")){$("who-can-see-default-folder-published").hide()}if($("who-can-see-locked-folder-published")){$("who-can-see-locked-folder-published").hide()}if($("who-can-see-default-page-published")){$("who-can-see-default-page-published").show()}if($("who-can-see-locked-page-published")){$("who-can-see-locked-page-published").show()}if($("who-can-see-custom-page-published")){$("who-can-see-custom-page-published").show()}if($("who-can-see-custom-page-published-edit-mode")){$("who-can-see-custom-page-published-edit-mode").show()}}else{if($("who-can-see-default-page-published")){$("who-can-see-default-page-published").hide()}if($("who-can-see-locked-page-published")){$("who-can-see-locked-page-published").hide()}if($("who-can-see-custom-page-published")){$("who-can-see-custom-page-published").hide()}if($("who-can-see-custom-page-published-edit-mode")){$("who-can-see-custom-page-published-edit-mode").hide()}if($("who-can-see-default-folder-published")){$("who-can-see-default-folder-published").show()}if($("who-can-see-locked-folder-published")){$("who-can-see-locked-folder-published").show()}}},folderPublishedHandler:function(A){if($("foldersecuritypublished").checked&&!PBinfo.CurrentWiki.isPublic){if($("who-can-see-default-folder-published")){$("who-can-see-default-folder-published").show()}if($("who-can-see-custom-folder-published")){$("who-can-see-custom-folder-published").show()}}else{if($("who-can-see-default-folder-published")){$("who-can-see-default-folder-published").hide()}if($("who-can-see-custom-folder-published")){$("who-can-see-custom-folder-published").hide()}}},expandHandler:function(B,A){if(B){B.stop()}var C;if(this.page){C={security_type:A,page:this.page}}else{if(this.file){C={security_type:A,file:this.file}}else{if(this.folder){C={security_type:A,folder:this.folder}}else{PBwiki.error("Neither page nor folder present");return }}}if(A=="custom"&&$("default_perm")){C.default_perm=$("default_perm").value}new PBwiki.APIRequest("GetHypotheticalUsers",C,{method:"get",onSuccess:this.dataHandler.bind(this,A),onFailure:function(D){alert(D)}})},dataHandler:function(C,D){var A=$("who-can-see-"+C);if(C=="custom"){D.users=$(D.users).reject(function(E){return !!$("user-"+E.uid)}.bind(this));$("securitytable").select(".groups tr, .users tr").each(function(F){if((F.id.substring(0,11)=="group-user-"||F.id.substring(0,5)=="user-")&&F.down("select")){var E={uid:F.getAttribute("ui:uid"),name:F.getAttribute("ui:name"),perm:F.down("select").value,has_wiki_perm:true,role:PBwiki.UserPermissions[(F.down("select").value=="edit")?"mod":F.down("select").value]};D.users.push(E)}})}if(D.users.length>this.kMaxUsers){this.drawText(A.down("table"),D)}else{this.drawTable(A.down("table"),D)}if(this.page||this.file){if(D.folder_published){A.addClassName("folder-published")}else{A.removeClassName("folder-published")}}A.down("div.expand").hide();A.down("div.content").scrollTop=0;A.down("div.content").show();var B=A.down("input.close");if(B){B.show()}PBwiki.DialogFactory.recenter()},drawTable:function(L,F){var B=L.id.substring(0,L.id.length-5);var G;var I=0;var A=0;var H=L.down("tbody");H.update("");F.users.each(function(M){var N;if(M.name&&!M.name.empty()){N=M.name}else{if(M.email&&!M.email.empty()){N=M.email}else{if(M.username&&!M.username.empty()){N=M.username}else{N="Anonymous user"}}}var P=new Element("td",{style:"padding-left: 10px;"});P.appendChild(document.createTextNode(N));var O=new Element("td");O.appendChild(document.createTextNode(M.role));var Q=new Element("tr",{id:B+M.uid});if(!M.wiki_perm&&!M.has_wiki_perm){Q.hide();Q.addClassName("network-user");P.style.paddingLeft="25px";if(M.network_perm==="admin"){A++}else{I++}if(!G){G=Q}}Q.appendChild(P);Q.appendChild(O);H.appendChild(Q)}.bind(this));if(I+A>0){var E=new Element("td",{style:"padding-left: 10px;"});var D=new Element("a",{href:"javascript: void(0);",className:"who-can-see-show-all"});D.update("show all");D.observe("click",this.showNetworkUsers.bindAsEventListener(this,H));var K=(I+A)+" additional network "+(I>0?"users":"administrators")+" (";E.appendChild(document.createTextNode(K));E.appendChild(D);E.appendChild(document.createTextNode(")"));var C=new Element("td",{className:"who-can-see-show-all-role"});C.appendChild(document.createTextNode(I>0?"Reader":"Administrator"));var J=new Element("tr");J.appendChild(E);J.appendChild(C);H.insertBefore(J,G)}},showNetworkUsers:function(B,A){if(B){B.stop()}if(this.showing_all){A.select("tr.network-user").invoke("hide");A.down("a.who-can-see-show-all").update("show all");A.down("td.who-can-see-show-all-role").update("Reader");delete this.showing_all}else{A.select("tr.network-user").invoke("show");A.down("a.who-can-see-show-all").update("hide");A.down("td.who-can-see-show-all-role").update("");this.showing_all=true}},drawText:function(C,D){var F="";var A="";var G=0;var B=0;D.users.each(function(H){if(!H.wiki_perm){if(H.network_perm==="admin"){G++}else{B++}return }if(H.role!==A){A=H.role;if(F.length>0){F=F+"\n"}F=F+"Page "+H.role+"s:\n"}var I=(H.name&&!H.name.empty())?H.name:(H.email&&!H.email.empty())?H.email:"Anonymous user";F=F+"    "+I+"\n"});if(G>0&&B==0){F=F+"\n"+G+" administrators of your network will also have access,\nbecause the workspace is open to the network."}else{if(G+B>0){F=F+"\n"+(B+G)+" additional members of your network will also have access,\nbecause the workspace is open to the network."}}var E=new Element("pre");E.appendChild(document.createTextNode(F));C.replace(E)}});PBwiki.RoleHelp=Class.create({classname:"PBwiki.RoleHelp",initialize:function(A){if(A){this.options=A}else{this.options={}}$$("a.rolehelp").each(function(B){var C;if(B.hasClassName("rolehelp-default")){C=$("rolehelp-default")}else{if(B.hasClassName("rolehelp-locked")){C=$("rolehelp-locked")}else{if(B.hasClassName("rolehelp-hidden")){C=$("rolehelp-hidden")}else{if(B.hasClassName("rolehelp-custom")){C=$("rolehelp-custom")}}}}if(!C){return }B.observe("click",this.clickHandler.bindAsEventListener(this,C))}.bind(this))},clickHandler:function(B,A){if(B){if(this.options.never_follow_links){B.stop()}else{if(A.up("div.content")){B.stop()}else{if(A.up("table")&&A.up("table").down("tbody")&&A.up("table").down("tbody").childElementCount<=5){B.stop()}}}}A.up("div.selectrow").select("a.rolehelp.hide-when-opened").invoke("hide");A.show()}});PBwiki.init(PBwiki.PageSecurity);PBwiki.init(PBwiki.WhoCanSee);PBwiki.init(PBwiki.RoleHelp);PBwiki.Settings={classname:"PBwiki.Settings",initialize:function(){this.Panels.each(function(A){A.value.initialize.bind(this.Panels.get(A.key))()}.bind(this))},Panels:new Hash({Security:{initialize:function(){if(!$("securitysettings_publicrow")||$("welcome_wiki_viewers_anyone")){return }this.selections={};try{$w("viewers editors").each(function(C){this[C]={anyone:{},invitees:{}};this[C].anyone.radio=$("wiki_"+C+"_anyone");this[C].invitees.radio=$("wiki_"+C+"_invitees");try{this[C].anyone.label=$$("label[for="+this[C].anyone.radio.id+"]").first();this[C].invitees.label=$$("label[for="+this[C].invitees.radio.id+"]").first()}catch(B){}this[C].radioGroup=$$("input[name=whocan"+C.substr(0,4)+"]");this[C].getValue=function(){return this.radioGroup.find(function(D){return D.checked}).value}.bind(this[C])}.bind(this.selections))}catch(A){return }this.selections.requestAccessCheckbox=$("requestaccess_enabled");this.selections.requestAccessLabel=this.selections.requestAccessCheckbox.up().down("label");this.selections.inviteesLabelText=["Only people I invite","or approve"];if(this.requestAccessCheckbox=$("requestaccess_enabled")){(onRequestAccessChange=function(){var B=(this.requestAccessCheckbox.checked?this.selections.inviteesLabelText.join(" "):this.selections.inviteesLabelText.first());try{this.selections.viewers.invitees.label.innerHTML=B;this.selections.editors.invitees.label.innerHTML=B}catch(C){}}.bind(this))();$("requestaccess_enabled").observe("click",onRequestAccessChange)}[this.selections.viewers.radioGroup,this.selections.editors.radioGroup].flatten().each(function(B){B.observe("click",function(){document.fire("viewersecurity:changed")}.bind(this))}.bind(this.selections));(this.selections.editors.onViewSettingChanged=function(C){var B=this.editors.anyone;if(parseInt(this.viewers.getValue())){B.radio.enable();B.label.removeClassName("aux");if(this.editors.getValue()==1){this.requestAccessCheckbox.disabled=true;this.requestAccessLabel.addClassName("aux")}else{this.requestAccessLabel.removeClassName("aux");this.requestAccessCheckbox.disabled=false}}else{B.radio.disable();B.label.addClassName("aux");this.editors.invitees.radio.checked=true;this.requestAccessCheckbox.disabled=false;this.requestAccessLabel.removeClassName("aux")}}.bind(this.selections))();document.observe("viewersecurity:changed",this.selections.editors.onViewSettingChanged)}}})};PBwiki.init("PBwiki.Settings",PBwiki.Settings.initialize.bind(PBwiki.Settings));var FolderSelector=Class.create({classname:"FolderSelector",initialize:function(A){this.element=$(A);if(!this.element){return }this.link=this.element.down("a");this.selector=this.element.down("select");this.startLength=this.selector.length;this.link.observe("click",this.linkOnclick.bind(this));this.selector.observe("change",this.selectChanged.bind(this));this.element.observe("ui:folderchanged",this.folderChanged.bind(this));PBwiki.History.onLoadCheck("#folders=1",this.linkOnclick.bind(this))},linkOnclick:function(A){if(A){Event.stop(A)}this.link.update("Choose a folder:").blur();this.loadFolderList();this.selector.show()},loadFolderList:function(){this.selector.length=this.startLength;new PBwiki.APIRequest("GetFolders",{verbose:true},{cacheability:["foldertime","filetime","pagetime","permtime"],onSuccess:function(A){if(A.folders){A.folders=PBwiki.APIRequest.sortResultObjectByParents(A.folders);A.folders.each(function(C){var D=!C.indent?C.name.escapeHTML():"&nbsp;".times(C.indent*3)+C.name.escapeHTML();var B=new Element("option",{value:C.name}).update(D);this.selector.appendChild(B);if(C.name==PBinfo.CurrentPage.folder){B.selected=true}},this)}}.bind(this)})},selectChanged:function(B){var A=$F(this.selector);if(A.startsWith("Create")){this.handleCreateFolder()}else{this.selector.fire("ui:folderchanged",A)}},handleCreateFolder:function(){var B="Folder name";var A="Please name your folder";while(folderName=prompt(A,B)){if(!folderName){continue}var A=Util.is_valid_folder_name(folderName);if(A===true){break}}folderName=folderName.strip();if(folderName){this.selector.fire("ui:folderchanged",folderName)}else{this.selector.selectedIndex=this.selector.oldIndex}},folderChanged:function(B){if(typeof B.memo!="string"){B.memo=""}var A={page:PBinfo.CurrentPage.page,create_if_missing:true};var C="SetPageFolder";if(B.memo){A.folder=B.memo}else{A.remove=true}if(typeof PBinfo.CurrentFile!=="undefined"){C="SetFileFolder";delete A.page;A.file=PBinfo.CurrentFile.name}new PBwiki.APIRequest(C,A,{incUsess:true,onSuccess:function(D){setTimeout(function(){window.location.reload()},1000)},onFailure:function(E,D){document.fire("ui:onNotifyUser",{message:"Failed to set page folder: "+E,mode:"error"})}})}});PBwiki.init(FolderSelector,"folderselector");Page.Tags={classname:"Page.Tags",editorActive:false,placeHolderTxt:"e.g. report, new release",initialize:function(){if($("edittags")){$("edittags").observe("click",Page.Tags.toggleEditor.bind(Page.Tags));Page.Tags.tagMsg=$("ajaxtags").down(".tagsmsg");Page.Tags.tagError=$("ajaxtags").down(".validation-error");PBwiki.History.onLoadCheck("#tags=1",Page.Tags.toggleEditor.bind(Page.Tags))}},toggleEditor:function(B){if(B){Event.stop(B)}if(this.isToggling){return }this.isToggling=true;var D=$("tagList");if(!this.editorActive){this.tagInput=new Element("input",{id:"input-tags"});this.tagInput.setAttribute("type","text");this.tagInput.setAttribute("placeholder",Page.Tags.placeHolderTxt);this.tagInput.className="text";this.tagInput.style.width="165px";this.tagInput.observe("blur",this.toggleEditor.bind(this));this.tagInput.observe("keypress",this.keyDown.bind(this));var F=D.getElementsByTagName("A");this.savedTagStr=D.innerHTML;var I=this.getTagStr();this.tagInput.value=I;this.tagButton=new Element("input");this.tagButton.setAttribute("type","button");this.tagButton.setAttribute("value","OK");this.tagButton.style.marginLeft="2px";this.tagButton.observe("click",this.toggleEditor.bind(this));D.innerHTML="";D.appendChild(this.tagInput);D.appendChild(this.tagButton);new InputText(this.tagInput);this.editorActive=true;this.isToggling=false}else{var J=this.tagInput.value;if(J==Page.Tags.placeHolderTxt){J=""}var E=J.split(",");var G=false;D.innerHTML="";for(var A=0;A<E.length;A++){var H=E[A].strip();if(H==""){continue}if(G){D.appendChild(document.createTextNode(", "))}var C=new Element("a");C.setAttribute("href","/w/tags/show?tag="+H);C.appendChild(document.createTextNode(H));D.appendChild(C);G=true}if(G){$("edittags").innerHTML="Edit Tags:"}else{$("edittags").innerHTML="Add Tags"}this.updateTags();this.editorActive=false}},getTagStr:function(){var A=$("tagList").getElementsByTagName("A");var C="";for(var B=0;B<A.length;B++){if(B!=0){C+=","}C+=A[B].firstChild.nodeValue}return C},keyDown:function(A){if(!A){A=window.event}if(A.keyCode==13){this.toggleEditor()}},updateTags:function(){var C=this.getTagStr();var B="SetPageTags";var A={page:PBwiki.getPageName(),tags:C};if(typeof PBinfo.CurrentObject!=="undefined"){var B="SetTags";delete A.page;A.oid=PBinfo.CurrentObject}new PBwiki.APIRequest(B,A,{incUsess:true,onSuccess:this.tagSuccess.bind(this),onFailure:this.tagFail.bind(this),onComplete:function(){this.isToggling=false}.bind(this)});if($("tagfield")){$("tagfield").value=C}},tagFail:function(A){$("tagList").innerHTML=this.savedTagStr;this.tagError.innerHTML=A;this.tagError.style.display="block";setTimeout(function(){this.tagError.style.display="none"}.bind(this),30000)},tagSuccess:function(){this.tagMsg.style.display="block";setTimeout(function(){this.tagMsg.style.display="none"}.bind(this),5000)}};PBwiki.init(Page.Tags);FormPost={post:function(D,A){var B=Object.extend({action:"",validate:function(){return true},method:"post"},A);if(B.validate()){var C=FormPost.constructForm(D);C.method=B.method;C.action=B.action;document.body.appendChild(C);C.submit()}},constructForm:function(B){var A=new Element("form");$H(B).each(function(D){PBwiki.debug("creating hidden input for %s:%s",D.key,D.value);var C=new Element("input",{type:"hidden",name:D.key,value:D.value,style:"display:none"});A.appendChild(C)});return A}};var PostCommand=Class.create({classname:"PostCommand",initialize:function(A){this.element=$(A);this.element.observe("click",this.onclick.bind(this))},onclick:function(F){var G=this.element.getAttribute("ui:validation");var E=this.element.getAttribute("ui:action")||this.element.href;var C=this.element.getAttribute("ui:query");var B=this.element.getAttribute("ui:confirm");var D=Util.parseQueryString(C);var A={action:E};if(G){A.validate=window[G]}PBwiki.debug(A);Event.stop(F);if(B==""||confirm(B)){FormPost.post(D,A)}}});PostCommand.initialize=function(){PostCommand.selector=".postcommand";try{$$(PostCommand.selector).each(function(B){new PostCommand(B)})}catch(A){PBwiki.warn("PostCommand: error: "+A)}};PBwiki.AddUserBehavior=Class.create({classname:"PBwiki.AddUserBehavior",initialize:function(A){return },handleEnterOnEmailField:function(A){if(A.keyCode==Event.KEY_RETURN){this.sendAddRequest();Event.stop(A)}},sendAddRequest:function(){var A=$F(this.emailInput);var D=this.emailInput.getAttribute("placeholder");if(A!=D){var E=this.emailInput.name;var C=this.permInput.name;var B=Util.is_valid_email(A);if(B!==true){this.doErrorMessage(B);return }new PBwiki.APIRequest("AddUser",{email:A,perm:this.permInput.value,invite:true,demote:false},{onSuccess:this.addUserSuccess.bind(this),incUsess:true,onFailure:this.doErrorMessage.bind(this)});this.errMsg.hide()}},addUserSuccess:function(A){if(A.info=="added"||A.info=="created"||A.info=="accepted"){this.appendToAddList("Added "+A.email)}else{this.appendToAddList(A.email+" already exists")}this.emailInput.value="";this.emailInput.focus();this.errMsg.hide()},doErrorMessage:function(A){this.emailInput.focus();this.emailInput.select();this.errMsg.innerHTML=A;this.errMsg.style.display="block";setTimeout(function(){this.errMsg.hide()}.bind(this),5000)},appendToAddList:function(B){if(!this.emailList){this.emailList=new Element("ul",{className:"added-emails"});this.errMsg.insert({after:this.emailList})}var A=new Element("li",{className:"iconbutton accepticon"});A.innerHTML=B;this.emailList.appendChild(A);setTimeout(function(){A.style.display="none"},4000)}});RadioButtonSelector=Class.create({classname:"RadioButtonSelector",initialize:function(B){this.element=$(B);this.selectrows=this.element.getElementsBySelector(".selectrow");this.selectors=this.element.getElementsBySelector("label, input[type=radio]");this.selectrows.invoke("observe","ui:select",this.selectEvent);var A=this.selectors.invoke("observe","click",this.fireSelectEvent.bind(this)).find(function(C){return C.checked});this.fireSelectEvent(A)},selectEvent:function(A){if(A.memo.descendantOf(this)){this.addClassName("selected");this.down("input").checked=true}else{this.removeClassName("selected")}},fireSelectEvent:function(A){this.selectrows.invoke("fire","ui:select",(A.element?A.element():A))}});CommentValidator={initialize:function(){if(!$("comment-form")){return }$("comment-form").observe("submit",CommentValidator.validate)},validate:function(A){if(Page.HTMLComments&&Page.HTMLComments.started){return }maxlength=2000;var B=$("comment-form-value");val=B.value;if(val.length>=maxlength){alert("Your comments must be "+maxlength+" characters or less. This comment is "+val.length+" characters.");B.focus();A.stop()}else{if(val.length==0){alert("Your comment cannot be empty.");B.focus();A.stop()}}$$("#comment-form .primarybutton").each(function(C){C.disable()})}};PBwiki.init("PostCommand",PostCommand);PBwiki.init("CommentValidator",CommentValidator);PBwiki.init("PBwiki.AddUserBehavior",PBwiki.AddUserBehavior,"module:addusers");function insert_sig(){var A=FCKeditorAPI.GetInstance("content");var D=new Date();var E=D.getMonth()+1;var B=D.getDate();var C=D.getYear()-100;A.InsertHtml("-- Brian Kirchoff "+E+"/"+B+"/"+C)}function insert_file_into_editor(D,C,B){var A=FCKeditorAPI.GetInstance("content");var E=insert_get_selection();if(E==""){E='<img border="0" src="'+C+'" /></a>&nbsp;<a href="'+D+'">'+B}A.InsertHtml('<a href="'+D+'">'+E+"</a>");return false}function insert_newlink_into_editor(){document.fire("ui:insertlink")}function insert_newimage_into_editor(){var A=prompt("Enter the URL of the image to insert into the editor");if(A){insert_image_into_editor(A)}}function insert_image_into_editor(B){var C='<img src="'+B+'" />';if(typeof (FCKeditorAPI)!="undefined"){var A=FCKeditorAPI.GetInstance("content");A.InsertHtml(C)}else{PBwiki.currentEditor.editor.execCommand("mceInsertContent",false,C)}return false}function tagCloudToggle(B){var A=$("tagcloud");if(A.getStyle("display")=="none"){A.setStyle({display:"block"});B.innerHTML="Hide all tags"}else{A.setStyle({display:"none"});B.innerHTML="Show all tags"}}var g_pb_Enable_focus_changes=true;function insert_pagelink_into_editor(E,D){if(typeof D=="undefined"){D=E}var A=FCKeditorAPI.GetInstance("content");var C=insert_get_selection();if(C==""){C=D}var B=g_pb_Enable_focus_changes;g_pb_Enable_focus_changes=false;A.InsertHtml('<a href="/'+E+'" >'+C+"</a>");g_pb_Enable_focus_changes=B}function insert_get_selection(){var B=FCKeditorAPI.GetInstance("content");var A=B.Selection;if(A.GetType()=="Text"){if(document.all){return B.EditorDocument.selection.createRange().text}else{return B.EditorWindow.getSelection()}}return""}function load_real_thumbnail(B,A){var C=B.getAttribute("realsrc");if(C){B.setAttribute("src",C)}A.onmouseover=null}function load_all_files(){new Ajax.Updater("thingbarfiles","/api_v2/op/GetFileListAsHtml/_type/html")}function load_all_pages(){new Ajax.Updater("thingbarpages","/api_v2/op/GetPageListAsHtml/_type/html")}document.observe("ui:fckeditor_oncomplete",function(B){var A=B.memo.editorInstance;if(g_pb_Enable_focus_changes){A.Events.AttachEvent("OnSelectionChange",CheckFocusForNbsp)}});function CheckFocusForNbsp(C){if(!g_pb_Enable_focus_changes){return }var D=C.Selection.GetBoundaryParentElement();var E=C.Selection.GetSelection();if(!D||!E){return }var A=(E.createRange)?E.createRange().text:E.toString();if((!A||A=="")&&(D.innerHTML.length>0&&D.innerHTML.replace("&nbsp;","")==""||encodeURIComponent(D.innerHTML)=="%C2%A0")){if(C.EditorWindow.getSelection){E.collapse(D,false)}else{var B=E.createRange();B.moveToElementText(D);B.collapse(true);B.select()}}}var Page=Page||{};Page.Notifications={classname:"Page.Notifications",cookieName:"pbNotifications",notificationList:[],initialize:function(){if(!$("notifications")){return }var C=$("notifications").select("li");var A=C.id;this.notificationList=new Array();for(var B=0;B<C.length;B++){this.notificationList.push(new Notification(C[B]))}this.updateDisplay()},addNotification:function(A){var B=this.findNotification($("notification-"+A.id));if(!B){this.notificationList.push(new Notification(null,A))}this.updateDisplay()},addError:function(B){var A={icon:"interstitial"};Object.extend(A,B);this.addNotification(A)},removeNotification:function(A){this.notificationList=$A(this.notificationList).without(A);this.updateDisplay()},findNotification:function(B){for(var A=0;A<this.notificationList.length;A++){if(this.notificationList[A].elm==B){return this.notificationList[A]}}},updateDisplay:function(){if(this.notificationList.length==0){$("notifications").style.display="none"}var B=$("notifications").select("li");for(var A=0;A<B.length;A++){if(A==B.length-1){B[A].addClassName("last")}else{B[A].removeClassName("last")}}}};var Notification=Class.create({initialize:function(B,A){if(B){if(B.hasClassName("dismiss")){this.dismissControl=B.down(".dismisscontrol");this.dismissControl.observe("click",this.dismiss.bind(this))}this.elm=B;this.contentElm=$(this.elm.childNodes[2]);this.id=B.id.replace("notification-","")}else{this.elm=new Element("li").addClassName("notification");if(A.dismiss){this.dismissControl=new Element("div").addClassName("dismisscontrol");this.elm.addClassName("dismiss");this.elm.appendChild(this.dismissControl)}if(A.icon){this.elm.addClassName("page-"+A.icon)}this.contentElm=new Element("p");if(A.html){this.contentElm.innerHTML=A.html}this.elm.appendChild(this.contentElm);$("notifications").appendChild(this.elm)}},setMessage:function(A){this.contentElm.innerHTML=A},remove:function(){this.elm.remove();Page.Notifications.removeNotification(this)},dismiss:function(A){A.stop();Messaging.Link({id:this.id,dismiss:1});this.remove()}});var Messaging={url:"/messaging.php?",Link:function(D){var C={mId:D.id};if(D.dismiss&&D.dismiss!="no"){C.dismiss=1;var B=Messaging.url+Object.toQueryString(C);new Ajax.Request(B);var A=$("notification-"+D.id);var E=Page.Notifications.findNotification(A);Page.Notifications.removeNotification(E)}if(D.url){C.url=D.url;var B=Messaging.url+Object.toQueryString(C);if(D.target=="_blank"){window.open(B)}else{window.location.href=B}}}};PBwiki.init("Page.Notifications",Page.Notifications.initialize.bind(Page.Notifications));(function(){var F=0,K=[],M={},I={},A={"<":"lt",">":"gt","&":"amp",'"':"quot","'":"#39"},L=/[<>&\"\']/g,B,C=window.setTimeout,D={},E;function H(){this.returnValue=false}function J(){this.cancelBubble=true}(function(N){var O=N.split(/,/),P,R,Q;for(P=0;P<O.length;P+=2){Q=O[P+1].split(/ /);for(R=0;R<Q.length;R++){I[Q[R]]=O[P]}}})("application/msword,doc dot,application/pdf,pdf,application/pgp-signature,pgp,application/postscript,ps ai eps,application/rtf,rtf,application/vnd.ms-excel,xls xlb,application/vnd.ms-powerpoint,ppt pps pot,application/zip,zip,application/x-shockwave-flash,swf swfl,application/vnd.openxmlformats,docx pptx xlsx,audio/mpeg,mpga mpega mp2 mp3,audio/x-wav,wav,audio/mp4,m4a,image/bmp,bmp,image/gif,gif,image/jpeg,jpeg jpg jpe,image/png,png,image/svg+xml,svg svgz,image/tiff,tiff tif,text/html,htm html xhtml,text/rtf,rtf,video/mpeg,mpeg mpg mpe,video/quicktime,qt mov,video/mp4,mp4,video/x-m4v,m4v,video/x-flv,flv,video/vnd.rn-realvideo,rv,text/plain,asc txt text diff log,application/octet-stream,exe");var G={VERSION:"1.4.3.2",STOPPED:1,STARTED:2,QUEUED:1,UPLOADING:2,FAILED:4,DONE:5,GENERIC_ERROR:-100,HTTP_ERROR:-200,IO_ERROR:-300,SECURITY_ERROR:-400,INIT_ERROR:-500,FILE_SIZE_ERROR:-600,FILE_EXTENSION_ERROR:-601,IMAGE_FORMAT_ERROR:-700,IMAGE_MEMORY_ERROR:-701,IMAGE_DIMENSIONS_ERROR:-702,mimeTypes:I,extend:function(N){G.each(arguments,function(O,P){if(P>0){G.each(O,function(R,Q){N[Q]=R})}});return N},cleanName:function(N){var O,P;P=[/[\300-\306]/g,"A",/[\340-\346]/g,"a",/\307/g,"C",/\347/g,"c",/[\310-\313]/g,"E",/[\350-\353]/g,"e",/[\314-\317]/g,"I",/[\354-\357]/g,"i",/\321/g,"N",/\361/g,"n",/[\322-\330]/g,"O",/[\362-\370]/g,"o",/[\331-\334]/g,"U",/[\371-\374]/g,"u"];for(O=0;O<P.length;O+=2){N=N.replace(P[O],P[O+1])}N=N.replace(/\s+/g,"_");N=N.replace(/[^a-z0-9_\-\.]+/gi,"");return N},addRuntime:function(N,O){O.name=N;K[N]=O;K.push(O);return O},guid:function(){var N=new Date().getTime().toString(32),O;for(O=0;O<5;O++){N+=Math.floor(Math.random()*65535).toString(32)}return(G.guidPrefix||"p")+N+(F++).toString(32)},buildUrl:function(O,N){var P="";G.each(N,function(R,Q){P+=(P?"&":"")+encodeURIComponent(Q)+"="+encodeURIComponent(R)});if(P){O+=(O.indexOf("?")>0?"&":"?")+P}return O},each:function(Q,R){var P,O,N;if(Q){P=Q.length;if(P===B){for(O in Q){if(Q.hasOwnProperty(O)){if(R(Q[O],O)===false){return }}}}else{for(N=0;N<P;N++){if(R(Q[N],N)===false){return }}}}},formatSize:function(N){if(N===B||/\D/.test(N)){return G.translate("N/A")}if(N>1073741824){return Math.round(N/1073741824,1)+" GB"}if(N>1048576){return Math.round(N/1048576,1)+" MB"}if(N>1024){return Math.round(N/1024,1)+" KB"}return N+" b"},getPos:function(O,S){var T=0,R=0,V,U=document,P,Q;O=O;S=S||U.body;function N(Z){var X,Y,W=0,a=0;if(Z){Y=Z.getBoundingClientRect();X=U.compatMode==="CSS1Compat"?U.documentElement:U.body;W=Y.left+X.scrollLeft;a=Y.top+X.scrollTop}return{x:W,y:a}}if(O&&O.getBoundingClientRect&&(navigator.userAgent.indexOf("MSIE")>0&&U.documentMode!==8)){P=N(O);Q=N(S);return{x:P.x-Q.x,y:P.y-Q.y}}V=O;while(V&&V!=S&&V.nodeType){T+=V.offsetLeft||0;R+=V.offsetTop||0;V=V.offsetParent}V=O.parentNode;while(V&&V!=S&&V.nodeType){T-=V.scrollLeft||0;R-=V.scrollTop||0;V=V.parentNode}return{x:T,y:R}},getSize:function(N){return{w:N.offsetWidth||N.clientWidth,h:N.offsetHeight||N.clientHeight}},parseSize:function(N){var O;if(typeof (N)=="string"){N=/^([0-9]+)([mgk]+)$/.exec(N.toLowerCase().replace(/[^0-9mkg]/g,""));O=N[2];N=+N[1];if(O=="g"){N*=1073741824}if(O=="m"){N*=1048576}if(O=="k"){N*=1024}}return N},xmlEncode:function(N){return N?(""+N).replace(L,function(O){return A[O]?"&"+A[O]+";":O}):N},toArray:function(P){var O,N=[];for(O=0;O<P.length;O++){N[O]=P[O]}return N},addI18n:function(N){return G.extend(M,N)},translate:function(N){return M[N]||N},isEmptyObj:function(N){if(N===B){return true}for(var O in N){return false}return true},hasClass:function(P,O){var N;if(P.className==""){return false}N=new RegExp("(^|\\s+)"+O+"(\\s+|$)");return N.test(P.className)},addClass:function(O,N){if(!G.hasClass(O,N)){O.className=O.className==""?N:O.className.replace(/\s+$/,"")+" "+N}},removeClass:function(P,O){var N=new RegExp("(^|\\s+)"+O+"(\\s+|$)");P.className=P.className.replace(N,function(R,Q,S){return Q===" "&&S===" "?" ":""})},getStyle:function(O,N){if(O.currentStyle){return O.currentStyle[N]}else{if(window.getComputedStyle){return window.getComputedStyle(O,null)[N]}}},addEvent:function(S,N,T){var R,Q,P,O;O=arguments[3];N=N.toLowerCase();if(E===B){E="Plupload_"+G.guid()}if(S.attachEvent){R=function(){var U=window.event;if(!U.target){U.target=U.srcElement}U.preventDefault=H;U.stopPropagation=J;T(U)};S.attachEvent("on"+N,R)}else{if(S.addEventListener){R=T;S.addEventListener(N,R,false)}}if(S[E]===B){S[E]=G.guid()}if(!D.hasOwnProperty(S[E])){D[S[E]]={}}Q=D[S[E]];if(!Q.hasOwnProperty(N)){Q[N]=[]}Q[N].push({func:R,orig:T,key:O})},removeEvent:function(S,N){var Q,T,P;if(typeof (arguments[2])=="function"){T=arguments[2]}else{P=arguments[2]}N=N.toLowerCase();if(S[E]&&D[S[E]]&&D[S[E]][N]){Q=D[S[E]][N]}else{return }for(var O=Q.length-1;O>=0;O--){if(Q[O].key===P||Q[O].orig===T){if(S.detachEvent){S.detachEvent("on"+N,Q[O].func)}else{if(S.removeEventListener){S.removeEventListener(N,Q[O].func,false)}}Q[O].orig=null;Q[O].func=null;Q.splice(O,1);if(T!==B){break}}}if(!Q.length){delete D[S[E]][N]}if(G.isEmptyObj(D[S[E]])){delete D[S[E]];try{delete S[E]}catch(R){S[E]=B}}},removeAllEvents:function(O){var N=arguments[1];if(O[E]===B||!O[E]){return }G.each(D[O[E]],function(Q,P){G.removeEvent(O,P,N)})}};G.Uploader=function(Q){var O={},T,S=[],P;T=new G.QueueProgress();Q=G.extend({chunk_size:0,multipart:true,multi_selection:true,file_data_name:"file",filters:[]},Q);function R(){var V,W=0,U;if(this.state==G.STARTED){for(U=0;U<S.length;U++){if(!V&&S[U].status==G.QUEUED){V=S[U];V.status=G.UPLOADING;this.trigger("BeforeUpload",V);this.trigger("UploadFile",V)}else{W++}}if(W==S.length){this.trigger("UploadComplete",S);this.stop()}}}function N(){var V,U;T.reset();for(V=0;V<S.length;V++){U=S[V];if(U.size!==B){T.size+=U.size;T.loaded+=U.loaded}else{T.size=B}if(U.status==G.DONE){T.uploaded++}else{if(U.status==G.FAILED){T.failed++}else{T.queued++}}}if(T.size===B){T.percent=S.length>0?Math.ceil(T.uploaded/S.length*100):0}else{T.bytesPerSec=Math.ceil(T.loaded/((+new Date()-P||1)/1000));T.percent=T.size>0?Math.ceil(T.loaded/T.size*100):0}}G.extend(this,{state:G.STOPPED,runtime:"",features:{},files:S,settings:Q,total:T,id:G.guid(),init:function(){var Z=this,b,W,V,Y=0,X;if(typeof (Q.preinit)=="function"){Q.preinit(Z)}else{G.each(Q.preinit,function(e,a){Z.bind(a,e)})}Q.page_url=Q.page_url||document.location.pathname.replace(/\/[^\/]+$/g,"/");if(!/^(\w+:\/\/|\/)/.test(Q.url)){Q.url=Q.page_url+Q.url}Q.chunk_size=G.parseSize(Q.chunk_size);Q.max_file_size=G.parseSize(Q.max_file_size);Z.bind("FilesAdded",function(a,g){var f,e,j=0,k,h=Q.filters;if(h&&h.length){k=[];G.each(h,function(l){G.each(l.extensions.split(/,/),function(n){if(/^\s*\*\s*$/.test(n)){k.push("\\.*")}else{k.push("\\."+n.replace(new RegExp("["+("/^$.*+?|()[]{}\\".replace(/./g,"\\$&"))+"]","g"),"\\$&"))}})});k=new RegExp(k.join("|")+"$","i")}for(f=0;f<g.length;f++){e=g[f];e.loaded=0;e.percent=0;e.status=G.QUEUED;if(k&&!k.test(e.name)){a.trigger("Error",{code:G.FILE_EXTENSION_ERROR,message:G.translate("File extension error."),file:e});continue}if(e.size!==B&&e.size>Q.max_file_size){a.trigger("Error",{code:G.FILE_SIZE_ERROR,message:G.translate("File size error."),file:e});continue}S.push(e);j++}if(j){C(function(){Z.trigger("QueueChanged");Z.refresh()},1)}else{return false}});if(Q.unique_names){Z.bind("UploadFile",function(a,e){var g=e.name.match(/\.([^.]+)$/),f="tmp";if(g){f=g[1]}e.target_name=e.id+"."+f})}Z.bind("UploadProgress",function(a,e){e.percent=e.size>0?Math.ceil(e.loaded/e.size*100):100;N()});Z.bind("StateChanged",function(a){if(a.state==G.STARTED){P=(+new Date())}else{if(a.state==G.STOPPED){for(b=a.files.length-1;b>=0;b--){if(a.files[b].status==G.UPLOADING){a.files[b].status=G.QUEUED;N()}}}}});Z.bind("QueueChanged",N);Z.bind("Error",function(a,e){if(e.file){e.file.status=G.FAILED;N();if(a.state==G.STARTED){C(function(){R.call(Z)},1)}}});Z.bind("FileUploaded",function(a,e){e.status=G.DONE;e.loaded=e.size;a.trigger("UploadProgress",e);C(function(){R.call(Z)},1)});if(Q.runtimes){W=[];X=Q.runtimes.split(/\s?,\s?/);for(b=0;b<X.length;b++){if(K[X[b]]){W.push(K[X[b]])}}}else{W=K}function U(){var g=W[Y++],f,a,e;if(g){f=g.getFeatures();a=Z.settings.required_features;if(a){a=a.split(",");for(e=0;e<a.length;e++){if(!f[a[e]]){U();return }}}g.init(Z,function(h){if(h&&h.success){Z.features=f;Z.runtime=g.name;Z.trigger("Init",{runtime:g.name});Z.trigger("PostInit");Z.refresh()}else{U()}})}else{Z.trigger("Error",{code:G.INIT_ERROR,message:G.translate("Init error.")})}}U();if(typeof (Q.init)=="function"){Q.init(Z)}else{G.each(Q.init,function(e,a){Z.bind(a,e)})}},refresh:function(){this.trigger("Refresh")},start:function(){if(this.state!=G.STARTED){this.state=G.STARTED;this.trigger("StateChanged");R.call(this)}},stop:function(){if(this.state!=G.STOPPED){this.state=G.STOPPED;this.trigger("StateChanged")}},getFile:function(V){var U;for(U=S.length-1;U>=0;U--){if(S[U].id===V){return S[U]}}},removeFile:function(V){var U;for(U=S.length-1;U>=0;U--){if(S[U].id===V.id){return this.splice(U,1)[0]}}},splice:function(W,U){var V;V=S.splice(W===B?0:W,U===B?S.length:U);this.trigger("FilesRemoved",V);this.trigger("QueueChanged");return V},trigger:function(V){var X=O[V.toLowerCase()],W,U;if(X){U=Array.prototype.slice.call(arguments);U[0]=this;for(W=0;W<X.length;W++){if(X[W].func.apply(X[W].scope,U)===false){return false}}}return true},bind:function(U,W,V){var X;U=U.toLowerCase();X=O[U]||[];X.push({func:W,scope:V||this});O[U]=X},unbind:function(U){U=U.toLowerCase();var X=O[U],V,W=arguments[1];if(X){if(W!==B){for(V=X.length-1;V>=0;V--){if(X[V].func===W){X.splice(V,1);break}}}else{X=[]}if(!X.length){delete O[U]}}},unbindAll:function(){var U=this;G.each(O,function(W,V){U.unbind(V)})},destroy:function(){this.trigger("Destroy");this.unbindAll()}})};G.File=function(Q,O,P){var N=this;N.id=Q;N.name=O;N.size=P;N.loaded=0;N.percent=0;N.status=0};G.Runtime=function(){this.getFeatures=function(){};this.init=function(N,O){}};G.QueueProgress=function(){var N=this;N.size=0;N.loaded=0;N.uploaded=0;N.failed=0;N.queued=0;N.percent=0;N.bytesPerSec=0;N.reset=function(){N.size=N.loaded=N.uploaded=N.failed=N.queued=N.percent=N.bytesPerSec=0}};G.runtimes={};window.plupload=G})();(function(D,A,B,C){var E;if(D.Uint8Array&&D.ArrayBuffer&&!XMLHttpRequest.prototype.sendAsBinary){XMLHttpRequest.prototype.sendAsBinary=function(H){var F=new Uint8Array(H.length);for(var G=0;G<H.length;G++){F[G]=(H.charCodeAt(G)&255)}this.send(F.buffer)}}B.runtimes.Html5=B.addRuntime("html5",{getFeatures:function(){return{html5:D.FormData,progress:true,canOpenDialog:navigator.userAgent.indexOf("WebKit")!==-1}},init:function(I,J){var F={},G;function H(O){var M,L,N=[],P,K={};for(L=0;L<O.length;L++){M=O[L];if(K[M.name]){continue}K[M.name]=true;P=B.guid();F[P]=M;N.push(new B.File(P,M.fileName||M.name,M.fileSize||M.size))}if(N.length){I.trigger("FilesAdded",N)}}G=this.getFeatures();if(!G.html5){J({success:false});return }I.bind("Init",function(O){var X,W,T=[],N,U,L=O.settings.filters,M,S,K=A.body,V;X=A.createElement("div");X.id=O.id+"_html5_container";B.extend(X.style,{position:"absolute",background:I.settings.shim_bgcolor||"transparent",width:"100px",height:"100px",overflow:"hidden",zIndex:99999,opacity:I.settings.shim_bgcolor?"":0});X.className="plupload html5";if(I.settings.container){K=A.getElementById(I.settings.container);if(B.getStyle(K,"position")==="static"){K.style.position="relative"}}K.appendChild(X);no_type_restriction:for(N=0;N<L.length;N++){M=L[N].extensions.split(/,/);for(U=0;U<M.length;U++){if(M[U]==="*"){T=[];break no_type_restriction}S=B.mimeTypes[M[U]];if(S){T.push(S)}}}X.innerHTML='<input id="'+I.id+'_html5" style="width:100%;height:100%;font-size:99px" type="file" accept="'+T.join(",")+'" '+(I.settings.multi_selection?'multiple="multiple"':"")+" />";V=A.getElementById(I.id+"_html5");V.onchange=function(){H(this.files);this.value=""};W=A.getElementById(O.settings.browse_button);if(W){var Q=O.settings.browse_button_hover,R=O.settings.browse_button_active,P=O.features.canOpenDialog?W:X;if(Q){B.addEvent(P,"mouseover",function(){B.addClass(W,Q)},O.id);B.addEvent(P,"mouseout",function(){B.removeClass(W,Q)},O.id)}if(R){B.addEvent(P,"mousedown",function(){B.addClass(W,R)},O.id);B.addEvent(A.body,"mouseup",function(){B.removeClass(W,R)},O.id)}if(O.features.canOpenDialog){B.addEvent(W,"click",function(Y){A.getElementById(O.id+"_html5").click();Y.preventDefault()},O.id)}}});I.bind("PostInit",function(){var K=A.getElementById(I.settings.drop_element);if(K){if(E){B.addEvent(K,"dragenter",function(O){var N,L,M;N=A.getElementById(I.id+"_drop");if(!N){N=A.createElement("input");N.setAttribute("type","file");N.setAttribute("id",I.id+"_drop");N.setAttribute("multiple","multiple");B.addEvent(N,"change",function(){H(this.files);B.removeEvent(N,"change",I.id);N.parentNode.removeChild(N)},I.id);K.appendChild(N)}L=B.getPos(K,A.getElementById(I.settings.container));M=B.getSize(K);if(B.getStyle(K,"position")==="static"){B.extend(K.style,{position:"relative"})}B.extend(N.style,{position:"absolute",display:"block",top:0,left:0,width:M.w+"px",height:M.h+"px",opacity:0})},I.id);return }B.addEvent(K,"dragover",function(L){L.preventDefault()},I.id);B.addEvent(K,"drop",function(M){var L=M.dataTransfer;if(L&&L.files){H(L.files)}M.preventDefault()},I.id)}});I.bind("Refresh",function(K){var L,N,O,P,M;L=A.getElementById(I.settings.browse_button);if(L){N=B.getPos(L,A.getElementById(K.settings.container));O=B.getSize(L);P=A.getElementById(I.id+"_html5_container");B.extend(P.style,{top:N.y+"px",left:N.x+"px",width:O.w+"px",height:O.h+"px"});if(I.features.canOpenDialog){M=parseInt(L.parentNode.style.zIndex,10);if(isNaN(M)){M=0}B.extend(L.style,{zIndex:M});if(B.getStyle(L,"position")==="static"){B.extend(L.style,{position:"relative"})}B.extend(P.style,{zIndex:M-1})}}});I.bind("UploadFile",function(K,M){try{var N=K.settings,R,L;var Q=new XMLHttpRequest();Q.upload.onprogress=function(S){M.loaded=Math.min(M.size,S.loaded);K.trigger("UploadProgress",M)};Q.open("post",K.settings.url,true);Q.onreadystatechange=function(){if(Q.readyState==4){var S=Q.status;if(S>=400){K.trigger("Error",{code:B.HTTP_ERROR,message:B.translate("HTTP Error."),file:M,status:S})}else{K.trigger("FileUploaded",M,{response:Q.responseText,status:S})}}};var P=new FormData();P.append(K.settings.file_data_name,F[M.id]);Q.send(P)}catch(O){alert(O.message)}});I.bind("Destroy",function(K){var M,N,L=A.body,O={inputContainer:K.id+"_html5_container",inputFile:K.id+"_html5",browseButton:K.settings.browse_button,dropElm:K.settings.drop_element};for(M in O){N=A.getElementById(O[M]);if(N){B.removeAllEvents(N,K.id)}}B.removeAllEvents(A.body,K.id);if(K.settings.container){L=A.getElementById(K.settings.container)}L.removeChild(A.getElementById(O.inputContainer))});J({success:true})}})})(window,document,plupload);(function(F,B,D,E){var A={},G={};function C(){var H;try{H=navigator.plugins["Shockwave Flash"];H=H.description}catch(J){try{H=new ActiveXObject("ShockwaveFlash.ShockwaveFlash").GetVariable("$version")}catch(I){H="0.0"}}H=H.match(/\d+/g);return parseFloat(H[0]+"."+H[1])}D.flash={trigger:function(J,H,I){setTimeout(function(){var M=A[J],L,K;if(M){M.trigger("Flash:"+H,I)}},0)}};D.runtimes.Flash=D.addRuntime("flash",{getFeatures:function(){return{jpgresize:true,pngresize:true,maxWidth:8091,maxHeight:8091,chunks:true,progress:true,multipart:true}},init:function(J,O){var N,I,K,P=0,H=B.body;if(C()<10){O({success:false});return }G[J.id]=false;A[J.id]=J;N=B.getElementById(J.settings.browse_button);I=B.createElement("div");I.id=J.id+"_flash_container";D.extend(I.style,{position:"absolute",top:"0px",background:J.settings.shim_bgcolor||"transparent",zIndex:99999,width:"100%",height:"100%"});I.className="plupload flash";if(J.settings.container){H=B.getElementById(J.settings.container);if(D.getStyle(H,"position")==="static"){H.style.position="relative"}}H.appendChild(I);K="id="+escape(J.id);I.innerHTML='<object id="'+J.id+'_flash" width="100%" height="100%" style="outline:0" type="application/x-shockwave-flash" data="'+J.settings.flash_swf_url+'"><param name="movie" value="'+J.settings.flash_swf_url+'" /><param name="flashvars" value="'+K+'" /><param name="wmode" value="transparent" /><param name="allowscriptaccess" value="always" /></object>';function M(){return B.getElementById(J.id+"_flash")}function L(){if(P++>5000){O({success:false});return }if(!G[J.id]){setTimeout(L,1)}}L();N=I=null;J.bind("Flash:Init",function(){var R={},Q;M().setFileFilters(J.settings.filters,J.settings.multi_selection);if(G[J.id]){return }G[J.id]=true;J.bind("UploadFile",function(S,U){var V=S.settings,T=J.settings.resize||{};M().uploadFile(R[U.id],V.url,{name:U.target_name||U.name,mime:D.mimeTypes[U.name.replace(/^.+\.([^.]+)/,"$1").toLowerCase()]||"application/octet-stream",chunk_size:V.chunk_size,width:T.width,height:T.height,quality:T.quality,multipart:V.multipart,multipart_params:V.multipart_params||{},file_data_name:V.file_data_name,format:/\.(jpg|jpeg)$/i.test(U.name)?"jpg":"png",headers:V.headers,urlstream_upload:V.urlstream_upload})});J.bind("Flash:UploadProcess",function(T,S){var U=T.getFile(R[S.id]);if(U.status!=D.FAILED){U.loaded=S.loaded;U.size=S.size;T.trigger("UploadProgress",U)}});J.bind("Flash:UploadChunkComplete",function(S,U){var V,T=S.getFile(R[U.id]);V={chunk:U.chunk,chunks:U.chunks,response:U.text};S.trigger("ChunkUploaded",T,V);if(T.status!=D.FAILED){M().uploadNextChunk()}if(U.chunk==U.chunks-1){T.status=D.DONE;S.trigger("FileUploaded",T,{response:U.text})}});J.bind("Flash:SelectFiles",function(S,V){var U,T,W=[],X;for(T=0;T<V.length;T++){U=V[T];X=D.guid();R[X]=U.id;R[U.id]=X;W.push(new D.File(X,U.name,U.size))}if(W.length){J.trigger("FilesAdded",W)}});J.bind("Flash:SecurityError",function(S,T){J.trigger("Error",{code:D.SECURITY_ERROR,message:D.translate("Security error."),details:T.message,file:J.getFile(R[T.id])})});J.bind("Flash:GenericError",function(S,T){J.trigger("Error",{code:D.GENERIC_ERROR,message:D.translate("Generic error."),details:T.message,file:J.getFile(R[T.id])})});J.bind("Flash:IOError",function(S,T){J.trigger("Error",{code:D.IO_ERROR,message:D.translate("IO error."),details:T.message,file:J.getFile(R[T.id])})});J.bind("Flash:ImageError",function(S,T){J.trigger("Error",{code:parseInt(T.code,10),message:D.translate("Image error."),file:J.getFile(R[T.id])})});J.bind("Flash:StageEvent:rollOver",function(S){var T,U;T=B.getElementById(J.settings.browse_button);U=S.settings.browse_button_hover;if(T&&U){D.addClass(T,U)}});J.bind("Flash:StageEvent:rollOut",function(S){var T,U;T=B.getElementById(J.settings.browse_button);U=S.settings.browse_button_hover;if(T&&U){D.removeClass(T,U)}});J.bind("Flash:StageEvent:mouseDown",function(S){var T,U;T=B.getElementById(J.settings.browse_button);U=S.settings.browse_button_active;if(T&&U){D.addClass(T,U);D.addEvent(B.body,"mouseup",function(){D.removeClass(T,U)},S.id)}});J.bind("Flash:StageEvent:mouseUp",function(S){var T,U;T=B.getElementById(J.settings.browse_button);U=S.settings.browse_button_active;if(T&&U){D.removeClass(T,U)}});J.bind("QueueChanged",function(S){J.refresh()});J.bind("FilesRemoved",function(S,U){var T;for(T=0;T<U.length;T++){M().removeFile(R[U[T].id])}});J.bind("StateChanged",function(S){J.refresh()});J.bind("Refresh",function(S){var T,U,V;M().setFileFilters(J.settings.filters,J.settings.multi_selection);T=B.getElementById(S.settings.browse_button);if(T){U=D.getPos(T,B.getElementById(S.settings.container));V=D.getSize(T);D.extend(B.getElementById(S.id+"_flash_container").style,{top:U.y+"px",left:U.x+"px",width:V.w+"px",height:V.h+"px"})}});J.bind("Destroy",function(S){var T;D.removeAllEvents(B.body,S.id);delete G[S.id];delete A[S.id];T=B.getElementById(S.id+"_flash_container");if(T){H.removeChild(T)}});O({success:true})})}})})(window,document,plupload);(function(D,A,B,C){function E(F){return A.getElementById(F)}B.runtimes.Html4=B.addRuntime("html4",{getFeatures:function(){return{multipart:true,canOpenDialog:navigator.userAgent.indexOf("WebKit")!==-1}},init:function(F,G){F.bind("Init",function(O){var I=A.body,M,H="javascript",J,W,P,X=[],Q=/MSIE/.test(navigator.userAgent),S=[],L=O.settings.filters,N,K,R,V;no_type_restriction:for(N=0;N<L.length;N++){K=L[N].extensions.split(/,/);for(V=0;V<K.length;V++){if(K[V]==="*"){S=[];break no_type_restriction}R=B.mimeTypes[K[V]];if(R){S.push(R)}}}S=S.join(",");function U(){var b,Z,Y,a;P=B.guid();X.push(P);b=A.createElement("form");b.setAttribute("id","form_"+P);b.setAttribute("method","post");b.setAttribute("enctype","multipart/form-data");b.setAttribute("encoding","multipart/form-data");b.setAttribute("target",O.id+"_iframe");b.style.position="absolute";Z=A.createElement("input");Z.setAttribute("id","input_"+P);Z.setAttribute("type","file");Z.setAttribute("accept",S);Z.setAttribute("size",1);a=E(O.settings.browse_button);if(O.features.canOpenDialog&&a){B.addEvent(E(O.settings.browse_button),"click",function(f){Z.click();f.preventDefault()},O.id)}B.extend(Z.style,{width:"100%",height:"100%",opacity:0,fontSize:"99px"});B.extend(b.style,{overflow:"hidden"});Y=O.settings.shim_bgcolor;if(Y){b.style.background=Y}if(Q){B.extend(Z.style,{filter:"alpha(opacity=0)"})}B.addEvent(Z,"change",function(j){var g=j.target,f,h=[],k;if(g.value){E("form_"+P).style.top=-1048575+"px";f=g.value.replace(/\\/g,"/");f=f.substring(f.length,f.lastIndexOf("/")+1);h.push(new B.File(P,f));if(!O.features.canOpenDialog){B.removeAllEvents(b,O.id)}else{B.removeEvent(a,"click",O.id)}B.removeEvent(Z,"change",O.id);U();if(h.length){F.trigger("FilesAdded",h)}}},O.id);b.appendChild(Z);I.appendChild(b);O.refresh()}function T(){var Y=A.createElement("div");Y.innerHTML='<iframe id="'+O.id+'_iframe" name="'+O.id+'_iframe" src="'+H+':&quot;&quot;" style="display:none"></iframe>';M=Y.firstChild;I.appendChild(M);A.observe("frame:PutFile",function(Z){A.stopObserving("frame:PutFile");if(Z.memo.error_string){O.trigger("Error",{code:B.HTTP_ERROR,message:Z.memo.error,file:J,status:500})}else{O.trigger("FileUploaded",J,{response:"/*-secure-\n"+Object.toJSON(Z.memo)+"\n*/",status:200})}})}if(O.settings.container){I=E(O.settings.container);if(B.getStyle(I,"position")==="static"){I.style.position="relative"}}O.bind("UploadFile",function(Y,a){var b,Z;if(a.status==B.DONE||a.status==B.FAILED||Y.state==B.STOPPED){return }b=E("form_"+a.id);Z=E("input_"+a.id);Z.setAttribute("name",Y.settings.file_data_name);b.setAttribute("action",Y.settings.url);B.each(B.extend({name:a.target_name||a.name},Y.settings.multipart_params),function(g,e){var f=A.createElement("input");B.extend(f,{type:"hidden",name:e,value:g});b.insertBefore(f,b.firstChild)});J=a;E("form_"+P).style.top=-1048575+"px";b.submit();b.parentNode.removeChild(b)});O.bind("FileUploaded",function(Y){Y.refresh()});O.bind("StateChanged",function(Y){if(Y.state==B.STARTED){T()}if(Y.state==B.STOPPED){D.setTimeout(function(){B.removeEvent(M,"load",Y.id);M.parentNode.removeChild(M)},0)}});O.bind("Refresh",function(a){var h,b,e,f,Y,j,k,g,Z;h=E(a.settings.browse_button);if(h){Y=B.getPos(h,E(a.settings.container));j=B.getSize(h);k=E("form_"+P);g=E("input_"+P);B.extend(k.style,{top:Y.y+"px",left:Y.x+"px",width:j.w+"px",height:j.h+"px"});if(a.features.canOpenDialog){Z=parseInt(h.parentNode.style.zIndex,10);if(isNaN(Z)){Z=0}B.extend(h.style,{zIndex:Z});if(B.getStyle(h,"position")==="static"){B.extend(h.style,{position:"relative"})}B.extend(k.style,{zIndex:Z-1})}e=a.settings.browse_button_hover;f=a.settings.browse_button_active;b=a.features.canOpenDialog?h:k;if(e){B.addEvent(b,"mouseover",function(){B.addClass(h,e)},a.id);B.addEvent(b,"mouseout",function(){B.removeClass(h,e)},a.id)}if(f){B.addEvent(b,"mousedown",function(){B.addClass(h,f)},a.id);B.addEvent(A.body,"mouseup",function(){B.removeClass(h,f)},a.id)}}});F.bind("FilesRemoved",function(Y,a){var Z,b;for(Z=0;Z<a.length;Z++){b=E("form_"+a[Z].id);if(b){b.parentNode.removeChild(b)}}});F.bind("Destroy",function(Y){var Z,a,b,e={inputContainer:"form_"+P,inputFile:"input_"+P,browseButton:Y.settings.browse_button};for(Z in e){a=E(e[Z]);if(a){B.removeAllEvents(a,Y.id)}}B.removeAllEvents(A.body,Y.id);B.each(X,function(g,f){b=E("form_"+g);if(b){I.removeChild(b)}})});U()});G({success:true})}})})(window,document,plupload);PBwiki.Upload=Class.create({initialize:function(B){this.options=B;var A={runtimes:"html5,flash,html4",max_file_size:(PBwiki.getMaxUploadSize()/1000)+"kb",multipart:true,flash_swf_url:"/shared/js/plupload.flash.swf"};if(B.elm){A.browse_button=B.elm.id}if(B.container){A.container=B.container.id}if(PBinfo.CurrentWiki){this.options.wiki=PBinfo.CurrentWiki.name}this.uploadCount=0;this.uploader=new plupload.Uploader(A);this.uploader.bind("FilesAdded",this.onFilesAdded.bind(this));this.uploader.bind("FileUploaded",this.onFileUploaded.bind(this));this.uploader.bind("UploadProgress",this.onUploadProgress.bind(this));this.uploader.bind("Error",this.onUploadError.bind(this));this.uploader.init()},onFilesAdded:function(A,B){setTimeout(function(){if(this.lastError){this.cancelUploads()}else{if(this.options.onFilesAdded){this.options.onFilesAdded(A,B)}else{this.afterFilesAdded(A,B)}}}.bind(this),0)},onUploadError:function(A,C){if(C.code===plupload.FILE_SIZE_ERROR){var B=Util.size_readable(PBwiki.getMaxUploadSize());if(!PBinfo.CurrentWiki.premium){this.lastError="You cannot upload files that are larger than "+B+" using the free version of PBworks. To upload larger files, please upgrade to Classroom or Campus Edition, which allow you to upload files of up to 1 GB."}else{this.lastError="Selected file is too large. Please upload files under "+B+" in size"}}else{this.lastError=C.message}},setWiki:function(A){this.options.wiki=A},refresh:function(){this.uploader.refresh()},afterFilesAdded:function(A,B){this.uploadCount=0;this.convertDocumentFiles=false;this.checkForNameConflicts(this.uploader.files,function(){this.checkForDocumentImport(this.uploader.files,function(){this.openProgressDialog(this.uploader.files,function(){this.startUpload()}.bind(this))}.bind(this))}.bind(this))},checkForNameConflicts:function(B,A){(new PBwiki.APIRequest("GetObjectsNOM",{object_types:"file",wiki:this.options.wiki},{onSuccess:function(D){this.existingNames=D.objects.pluck("name");this.conflictNames=[];B.each(function(E){if(this.existingNames.indexOf(E.name)!==-1){this.conflictNames.push(E)}},this);var C=function(){if(this.conflictNames.length>0){this.handleNameConflict(B,C)}else{A()}}.bind(this);C()}.bind(this)}))},handleNameConflict:function(B,A){this.file=this.conflictNames.pop();this.altName=this.uniqueFileName(this.file.name);new PBwiki.DialogCommands.UploadConfirmation({name:this.file.name,altName:this.altName,count:this.conflictNames.length,onChoice:function(C){if(C.cancel){this.cancelUploads();return }var D=function(F,E){if(E=="skip"){this.uploader.removeFile(F)}else{if(E=="rename"){F.name=this.altName}}}.bind(this);D(this.file,C.choice);if(C.all){while(this.conflictNames.length>0){this.file=this.conflictNames.pop();this.altName=this.uniqueFileName(this.file.name);D(this.file,C.choice)}}if(this.uploader.files.length==0){this.cancelUploads();return }setTimeout(A,200)}.bind(this)})},checkForDocumentImport:function(C,A){var B=0;C.each(function(E){if(this.uploadEligibleForImport(E.name)){B++}},this);if(B==0){A()}else{try{(new PBwiki.DialogCommands.DocImportSuggestion({count:B,onUpload:function(){setTimeout(A,200)}.bind(this),onImport:function(){this.convertDocumentFiles=true;setTimeout(A,200)}.bind(this),onCancel:this.cancelUploads.bind(this)}))}catch(D){alert(D.message)}}},openProgressDialog:function(B,A){new PBwiki.DialogCommands.UploadProgress({upload:this,files:B,onLoaded:A})},startUpload:function(){this.uploader.settings.url=this.getUploadUrl(this.getNextFile());this.uploader.start()},onFileUploaded:function(A,B,C){try{var E=C.response.split("\n");var F=E[1].evalJSON()}catch(D){}if(!F||F.error_string){this.lastError=F?F.error_string:"Sorry, we encountered an error.";return this.afterFileUploaded()}if(F.upload_id){this.uploader.stop();this.notify("onProcessing","Processing upload...");this.waitForUploadProcessing(F.upload_id,this.afterFileUploaded.bind(this))}else{if(F.convert_id){this.uploader.stop();this.notify("onProcessing","Importing document...");this.waitForDocConversion(F.convert_id,this.afterFileUploaded.bind(this))}else{this.afterFileUploaded()}}},afterFileUploaded:function(){this.uploadCount++;if(this.uploadCount<this.uploader.files.length){this.notify("onQueueChanged",this.uploader.files);setTimeout(this.startUpload.bind(this),0)}else{this.onUploadComplete()}},onUploadProgress:function(A,B){this.notify("onUploadProgress",B)},onUploadComplete:function(){this.notify("onUploaded",this.uploadCount,this.lastError,this.uploader.files);this.uploader.splice(0,this.uploader.files.length);this.uploadCount=0;this.lastError=false},waitForUploadProcessing:function(C,A){var B=function(){(new PBwiki.APIRequest("GetPutFileStatus",{upload_id:C},{onSuccess:function(D){if(D.status=="finished"){A()}else{setTimeout(B,1000)}},onFailure:function(D){this.lastError=D;A()}.bind(this)}))}.bind(this);B()},waitForDocConversion:function(C,A){var B=function(){(new PBwiki.APIRequest("GetImportStatus",{convert_id:C,wiki:this.options.wiki},{onSuccess:function(D){if(D.status=="finished"){A()}else{if(D.status=="failed"){alert("Document import failed");A()}else{setTimeout(B,1000)}}}}))}.bind(this);B()},cancelUploads:function(){this.notify("onUploaded",this.uploadCount,this.lastError,this.uploader.files);this.uploader.splice(0,this.uploader.files.length);this.uploadCount=0;this.lastError=false},getNextFile:function(){var B=this.uploader.files;for(var A=0;A<B.length;A++){if(B[A].status!=plupload.DONE&&B[A].percent!=100&&B[A].status!=plupload.FAILED){break}}if(A<B.length){return B[A]}},uniqueFileName:function(A){var B=0;var E=A.lastIndexOf("."),D="",C=A;if(E!=-1){D=A.substr(E);C=A=A.substr(0,E)}while(this.existingNames.indexOf(A+D)!=-1){A=C+"("+(++B)+")"}return A+D},uploadEligibleForImport:function(A){if(!PBwiki.feature("file_import")){return false}if(PBwiki.UserPrefs.get(PBconst.kConvertDialogPrefsKey)){return false}var A=A.toLowerCase();return A.endsWith(".doc")||A.endsWith(".docx")||A.endsWith(".wpd")||A.endsWith(".odt")},getUploadUrl:function(A){var B={op:"PutFile",verbose:"true",wiki:this.options.wiki};Object.extend(B,PBwiki.getSessCookie());if(this.uploader.runtime=="html4"){Object.extend(B,{_type:"iframe",callback:"top.PBwiki.APIRequest.DelegateFrameRequest"})}if(this.options.onGetFolder){var C=this.options.onGetFolder();if(C){B.folder=C}}if(this.convertDocumentFiles){B.convert=true}if(A){B.filename=A.name}return"/api_v2/?"+Object.toQueryString(B)},enable:function(){this.isDisabled=false},disable:function(){this.isDisabled=true}});Object.Event.extend(PBwiki.Upload);PBwiki.Components=PBwiki.Components||{};PBwiki.Components.TreeView=Class.create({classname:"PBwiki.Components.TreeView",idKey:"oid",parentIdKey:"parent_id",noParentId:0,rootParentId:0,open:[],setData:function(B,A){this.data=B;if(A){this.open=A}this.computeLookups();this.nodes=this.computeTree(this.rootParentId,[],[])},setOpenNodes:function(A){this.open=A;this.nodes=this.computeTree(this.rootParentId,[],[])},isOpen:function(A){return this.open.indexOf(A)!=-1},expand:function(A){if(this.open.indexOf(A)==-1){this.open.push(A);this.setOpenNodes(this.open)}},collapse:function(A){this.setOpenNodes(this.open.without(A))},openParentNodes:function(C){var A=C,B;while(A&&A!=this.rootParentId){if(!this.isOpen(A)){this.expand(A);B=true}if(!this.indexes[A]){break}A=this.data[this.indexes[A]][this.parentIdKey]}return B},toggle:function(A){return this.isOpen(A)?this.collapse(A):this.expand(A)},computeLookups:function(){this.children={};this.indexes={};this.parents={};for(var A=0;A<this.data.length;A++){if(!this.data[A][this.parentIdKey]){this.data[A][this.parentIdKey]=this.noParentId}this.indexes[this.data[A][this.idKey]]=A;this.parents[this.data[A][this.idKey]]=this.data[A][this.parentIdKey];if(!this.children[this.data[A][this.parentIdKey]]){this.children[this.data[A][this.parentIdKey]]=[]}this.children[this.data[A][this.parentIdKey]].push(this.data[A][this.idKey])}},computeTree:function(C,A,D){if(this.children[C]){var G,E;for(var B=0;B<this.children[C].length;B++){G=this.children[C][B];E=D.clone();E.push(B!=this.children[C].length-1);var F={key:G,index:this.indexes[G],levels:E,parent_id:C};if(this.children[G]){F.hc=true}if(B==this.children[C].length-1){F.last=true}A.push(F);if(this.children[G]&&this.isOpen(G)){A.concat(A,this.computeTree(G,A,E))}}}return A},getData:function(E,A){if(!E){E=0}if(!A){A=this.nodes.length}var B=this.nodes.slice(E,A);var D=[];for(var C=0;C<B.length;C++){D[C+E]=Object.extend(Object.clone(this.data[B[C].index]),Object.clone(B[C]))}return D}});PBwiki.Components.APITreeView=Class.create(PBwiki.Components.TreeView,{classname:"PBwiki.Components.APITreeView",apiMethod:"GetObjectsNOM",apiOpts:{},apiKey:"objects",initialize:function(A){this.options=A;this.refresh()},refresh:function(){(new PBwiki.APIRequest(this.apiMethod,this.apiOpts,{onSuccess:this.onLoad.bind(this)}))},onLoad:function(A){for(i in A.objects){A.objects[i].perms=A.permcaps[A.objects[i].perm]}this.setData(A[this.apiKey],this.getOpenFromPref());this.onAfterLoad()},onAfterLoad:function(){this.redraw()},getOpenFromPref:function(){var C=PBwiki.UserPrefs.get(this.prefKey);if(!C){return[]}var A=C.toString().split(",");for(var B=0;B<A.length;B++){A[B]=parseInt(A[B],10)}return A},redraw:function(){this.options.elm.update("");delete this.selectedRow;this.getData().each(function(B){var A=this.onRenderRow(B);this.options.elm.appendChild(A);if(this.options.selectedObject&&B.oid==this.options.selectedObject.oid){this.selectedRow=A}},this)},setOpenNodes:function($super,A){var B=[];A.each(function(D){if(typeof (this.indexes[D])!="undefined"){B.push(D)}},this);var C=B.join(",");PBwiki.UserPrefs.set(this.prefKey,C);$super(B)}});PBwiki.Components.ScrollingAPITreeView=Class.create(PBwiki.Components.APITreeView,{classname:"PBwiki.Components.ScrollingAPITreeView",initialize:function($super,A){$super(A)},onAfterLoad:function($super){$super();this.options.elm.observe("scroll",this.onScroll.bind(this))},redraw:function(){this.options.elm.update("");this.loadedRows={};delete this.selectedRow;this.options.elm.setStyle({position:"relative"});var A=new Element("div").setStyle({height:this.nodes.length*this.rowHeight+"px"});this.options.elm.appendChild(A);this.onScroll()},onScroll:function(){var A=this.getVisibleRows(),D;for(var B=A.start;B<A.end;B++){if(this.loadedRows[B]){continue}if(!D){D=this.getData(A.start,A.end)}var E=D[B];var C=this.onRenderRow(E);C.setStyle({position:"absolute",top:B*this.rowHeight+"px"});this.options.elm.appendChild(C);if(this.options.selectedObject&&E.oid==this.options.selectedObject.oid){this.selectedRow=C}this.loadedRows[B]=true}},getVisibleRows:function(){var B=Math.floor(this.options.elm.scrollTop/this.rowHeight);B=Math.max(0,B-5);var A=Math.ceil((this.options.elm.scrollTop+this.options.elm.getHeight())/this.rowHeight);A=Math.min(this.nodes.length,A+5);return{start:B,end:A}}});PBwiki.Components.WorkspaceObjectTreeView=Class.create(PBwiki.Components.ScrollingAPITreeView,{classname:"PBwiki.Components.WorkspaceObjectTreeView",prefKey:PBconst.kWorkspaceTreeOpenNodes,rowHeight:22,apiOpts:{},initialize:function($super,A){this.apiOpts={sortby:"name",recursive:true};if(A.object_types){this.apiOpts.object_types=A.object_types}if(A.workspace){this.apiOpts.wiki=A.workspace}if(typeof (A.includeEmptyFolders)!="undefined"){this.includeEmptyFolders=A.includeEmptyFolders}if(!A.scrollElm){A.scrollElm=A.elm}$super(A)},refresh:function($super){this.options.elm.addClassName("loading");$super()},clearSelectedObject:function(){this.options.selectedObject=null;this.redraw()},onAfterLoad:function($super){this.options.elm.removeClassName("loading");if(this.options.centeredObject){this.openParentNodes(this.options.centeredObject[this.idKey])}$super();var C;if(this.options.centeredObject){var B=this.getData();for(var A=0;A<B.length;A++){if(B[A][this.idKey]==this.options.centeredObject[this.idKey]){C=A*this.rowHeight;break}}}if(C){C-=(this.options.scrollElm.getHeight()/2)-(this.rowHeight/2);this.options.scrollElm.scrollTop=C}this.notify("onLoad")},onRenderRow:function(L,D){var G=new Element("div").addClassName("row");var C=390;C-=21;var I=function(M){this.toggle(L.oid);this.redraw();M.stop()}.bind(this);var A=function(M){M.stop();this.options.selectedObject=L;this.redraw();this.notify("onSelected",L)}.bind(this);if(this.options.show_network_indent){G.appendChild(new Element("div",{"class":"spacer line"}));C-=15}for(var E=0;E<L.levels.length;E++){var H=new Element("div").addClassName("spacer");if(E<L.levels.length-1){if(L.levels[E]){H.addClassName("line")}}else{H.addClassName(L.last?"ln":"tn");if(L.type=="folder"&&L.hc){var K=new Element("div",{"class":"spacer"}).addClassName(this.isOpen(L.oid)?"contract":"expand");K.observe("click",I);H.appendChild(K)}}G.appendChild(H);C-=15}if(this.options.selectedObject&&L.oid==this.options.selectedObject.oid){G.addClassName("active")}if(L.type=="folder"){var B=new Element("a",{title:L.name,"class":"iconbutton folder foldericon",href:"#"});C-=20;if(this.options.selectable_folder_objects){B.observe("click",A)}else{B.addClassName("expandable");B.observe("click",I);var F=this.isOpen(L.oid)?"contract_hover":"expand_hover";B.observe("mouseover",function(){if(K){K.addClassName(F)}});B.observe("mouseout",function(){if(K){K.removeClassName(F)}})}B.setStyle({width:C+"px"});B.innerHTML=L.name.escapeHTML();G.appendChild(B)}else{var J=new Element("a",{title:L.name,href:"#","class":"iconbutton ellipses"});C-=20;J.setStyle({width:C+"px"});J.innerHTML=L.name.escapeHTML();if(L.type=="page"){J.addClassName("pageicon")}else{J.addClassName(Util.getFileIcon(L.name));if(this.options.workspace){L.wiki=this.options.workspace}Util.addObjectTooltip(J,L)}J.observe("click",A);G.appendChild(J)}return G}});Object.Event.extend(PBwiki.Components.WorkspaceObjectTreeView);Page.AjaxEdit={classname:"Page.AjaxEdit",editMode:false,sizeWarned:false,partialLoadEditor:false,initialize:function(){if(!PBwiki.feature("ajaxedit")||PBinfo.CurrentPage.editor_v3){return }if(window.location.search.toString().indexOf("edit=")!=-1){return }if($("edit-tab")&&$("edit-toolbar")&&$("view-tab")&&!$("edit-tab").hasClassName("logintoedit")){Page.AjaxEdit.start.bind(Page.AjaxEdit)()}},start:function(){this.partialLoadEditor=true;this.modeEnabled=true;if(window.location.hash=="#pbedit"){window.location.hash="#view=edit"}this.historyManager=PBwiki.History;this.historyManager.getKey("view").observe("onChange",function(D){if(["page","edit"].indexOf(D)!=-1){this.onViewChanged((D=="edit"))}}.bind(this));if(this.historyManager.getKey("view").getValue()=="edit"){if($("edit-tab").hasClassName("steal")){this.historyManager.setValues({view:"page"})}else{if($("wikicontent")){$("wikicontent").hide()}this.onViewChanged(true)}}if(PBinfo.CurrentPage.saved){document.fire("ui:onCurrentPageSaved",{})}this.frameTimer=setTimeout(this.loadFirstStage.bind(this),(window.location.hash=="#view=edit")?0:1000);document.observe("ui:fckeditor_oncomplete",function(){this.secondStage=true;this.resizeContentPanel()}.bind(this));document.observe("ui:editview",function(){this.onViewChanged(true)}.bind(this));document.observe("ui:fullscreen",this.setFullscreenMode.bind(this,true));document.observe("ui:nofullscreen",this.setFullscreenMode.bind(this,false));document.observe("ui:edit_lock_stolen",this.onEditLockStolen.bind(this));document.observe("live:locked",function(E){if(!this.editMode){return }var D=E.memo;if(!D.page||D.page!=PBwiki.getPageName()){return }if(D.owner!=PBwiki.getUID()){document.fire("ui:edit_lock_stolen",D)}}.bind(this));$("edit-tab").observe("mouseover",this.loadSecondStage.bind(this));$("view-tab").observe("click",this.tabClick.bindAsEventListener(this,false));$("edit-tab").observe("click",this.tabClick.bindAsEventListener(this,true));var A=$("edit-tab").down("a");if(A){A.onclick=null}var C=$("edit-toolbar").down(".button");$("cancelButton").observe("click",this.cancelEdit.bind(this));if(this.ajaxSave){C.observe("click",this.saveContent.bind(this));C.setAttribute("onclick","")}if(PBwiki.feature("ajaxcreate")){var B=$("main-tools").down("a.createpage");if(B&&!B.hasClassName("disabled")){B.observe("click",this.createPage.bind(this))}}Page.EditPage.Tags.initialize();if($("live_edit_toggle")){$("live_edit_toggle").observe("click",this.startLiveEdit.bind(this));document.observe("live:start_live_editing",this.onLiveEditStart.bind(this));document.observe("live:end_live_editing",this.onLiveEditEnd.bind(this));document.observe("live:deny_edit_request",this.onLiveEditDenyRequest.bind(this))}this.historyManager.start()},tabClick:function(B,A){if(B){B.stop();try{B.element().blur()}catch(B){}}this.onViewChanged(A)},onViewChanged:function(A){if(this.editMode==A){return }if(!A&&this.IsDirty()){if(!confirm("You have unsaved changes. Continue and discard those changes?")){this.historyManager.setValues({view:(this.editMode)?"edit":"page"});return }}if(A&&$("edit-tab").hasClassName("steal")){if(!confirm("This page is being edited by "+$("lockinfo").down("a").innerHTML+". Are you sure you wish to steal the lock?")){this.setMode(false);return }}this.setMode(A)},setMode:function(B){if(this.editMode==B){return }this.editMode=B;this.historyManager.setValues({view:(B)?"edit":"page"});try{if(B){this.loadSecondStage();Page.Thingbar.doLoad();var A=[];A.push(["SetPageLock",{page:PBwiki.getPageName(),steal:$("edit-tab").hasClassName("steal")},{onSuccess:function(E){this.handleLockinfo(E.lockinfo)}.bind(this)}]);if($("notification-autosave")){var D=Page.Notifications.findNotification($("notification-autosave"));if(!D){D=$("notification-autosave")}D.remove();A.push(["GetAutosave",{page:PBwiki.getPageName()},{onSuccess:this.handleAutosave.bind(this)}])}else{A.push(["GetPage",{page:PBwiki.getPageName(),raw:true},{onSuccess:this.handleGetPage.bind(this)}])}new PBwiki.MultiAPIRequest(A,{incUsess:true,onAllComplete:function(E){if(E.lastError){document.fire("ui:onNotifyUser",{message:E.lastError});this.setMode(false)}}.bind(this),onFailure:function(E){document.fire("ui:onNotifyUser",{message:E});this.setMode(false)}.bind(this)})}else{new PBwiki.APIRequest("UnlockPage",{page:PBwiki.getPageName()},{})}this.setChromeVisibility(B);this.setModeEvents(B)}catch(C){document.fire("ui:onNotifyUser",{message:"Failed to enter edit mode: "+C.message});return }if(!B&&this.secondStage&&this.IsDirty()){this.setContent(this.initialContent)}},IsDirty:function(){var A=this.getEditor();return((A)?A.IsDirty():false)||Page.EditPage.Tags.IsDirty()},handleGetPage:function(A){if(A.html!=this.initialContent){this.initialContent=A.html;this.setContent(A.html)}},handleAutosave:function(A){if(A.autosave){this.setContent(A.autosave.DATA)}},handleLockinfo:function(B){if(!B.hasLock){var A='<div class="edit-warning"><div class="content">';A+='This page is being edited by <a href="/user/'+B.owner+'">'+B.editname.escapeHTML()+"</a>.";A+='<a class="edit-warning" href="#view=edit">Steal lock</a></div></div>';$("lockinfo").update(A);$("edit-tab").addClassName("steal");this.onViewChanged("view");return }else{$("edit-tab").removeClassName("steal");$("lockinfo").update("")}},setChromeVisibility:function(A){(!A)?$("view-tab").addClassName("active"):$("view-tab").removeClassName("active");(A)?$("edit-tab").addClassName("active"):$("edit-tab").removeClassName("active");(!A)?$("wikicontent").show():$("wikicontent").hide();$("wikiedit").style.display=(A)?"block":"none";if($("comments")){$("comments").style.display=(!A)?"block":"none"}$("page-bottom-toolbar").style.display=(!A)?"block":"none";$("expand-collapse-page").style.display=(!A)?"block":"none";if($("page-footer")&&$("page-footer").down(".content")){$("page-footer").down(".content").style.display=(!A)?"block":"none"}$("edit-toolbar").down(".iconbutton").style.position="relative";if(A){UserPrefs.Manager.saveWidth();UserPrefs.Manager.goFullWidth()}else{UserPrefs.Manager.restoreWidth()}if(A){this.resizeContentPanel()}},setFullscreenMode:function(A){(A)?$("editwikipage").addClassName("fullscreen"):$("editwikipage").removeClassName("fullscreen");$("editwikipage").setStyle({width:""});if($("top-content")){$("top-content").style.display=(A)?"none":"block"}$("editor-column").style.display=(A)?"none":"block";$("show_tags").style.display=(A)?"none":"block";var D=$("content___Frame");if(D&&D.contentWindow){var B=D.contentWindow.document.getElementById("xToolbar");for(var C=0;C<B.childNodes.length;C++){if(B.childNodes[C].nodeName.toUpperCase()=="DIV"){B.childNodes[C].style.display=(A)?"none":"block";break}}}this.isFullscreen=A;this.resizeContentPanel()},setModeEvents:function(A){window.onresize=(A)?this.resizeContentPanel.bind(this):null;window.onbeforeunload=(A)?this.beforeUnload.bind(this):null;if(A){Page.EditPage.AutoSave.start.bind(Page.EditPage.AutoSave)()}else{Page.EditPage.AutoSave.stop.bind(Page.EditPage.AutoSave)()}},cancelEdit:function(A){A.stop();if(this.isFullscreen){document.fire("ui:nofullscreen")}this.setMode(false)},resetDirty:function(){if(this.secondStage){var A=this.getEditor();if(A&&A.ResetIsDirty){A.ResetIsDirty()}}},doDeleteAutosave:function(){new PBwiki.APIRequest("DeleteAutosave",{page:PBwiki.getPageName()},{onSuccess:function(){Page.Notifications.findNotification($("notification-autosave")).remove()}})},setEditorFocus:function(){$("autosave_msg").update($("autosave_msg").innerHTML);var A=this.getEditor();if(A&&this.secondStage){A.Focus()}},setContent:function(C){var A=this.getEditor();try{Page.EditPage.AutoSave.lastHTML=C;A.SetHTML(C,true);A.Focus()}catch(B){}$("content").value=C;this.checkSizeWarning(C.length)},checkSizeWarning:function(B){var A=Math.round(B/1024);var C=PBconst.kPolicyPageSizeWarning/1024;if(A>C&&!this.sizeWarned){document.fire("ui:onNotifyUser",{mode:"warning",message:"Warning: This page is "+A+'KB. We <a target="doc" href="https://usermanual.pbworks.com/Best-Practices#Addingnewpages">recommend splitting pages</a> larger than '+C+"KB up into several smaller pages for easier readability and best performance."});this.sizeWarned=true}},getEditor:function(){if(typeof (FCKeditorAPI)!="undefined"){return FCKeditorAPI.GetInstance("content")}},loadSecondStage:function(){if(this.secondStage||this.secondLoading){return }this.secondLoading=true;this.partialLoadEditor=false;this.loadFirstStage();if(!PBinfo.GetPage.hasPlugins&&$$(".searchhilitepage").length==0){this.editContent=$("wikipage-inner")?$("wikipage-inner").innerHTML:""}var A=$("content___Frame");if(A&&A.contentWindow&&A.contentWindow.SecondStage){A.contentWindow.SecondStage()}},loadFirstStage:function(){if(this.firstStage||this.firstLoading){return }this.firstLoading=true;if($("content")){return }var B=$("wikiedit");var C=(Prototype.Browser.IE)?"ie":"gecko";var A='<iframe id="content___Frame" src="/FCKeditor/build-fck/editor/'+C+"-"+PBinfo.CurrentPage.editorVersion+(PBinfo.CurrentWiki.debug?"/debug":"");A+='" width="100%" height="'+this.getResizeHeight()+'" frameborder="0" scrolling="no"></iframe>';A+='<input type="hidden" id="content___Config" value="ToolbarStartExpanded=true&amp;SkinPath=/FCKeditor/build-fck/editor/skins/silver/" style="display:none" />';var E=new Element("textarea");E.setAttribute("id","content");E.setAttribute("name","content");E.style.display="none";E.value="";var D=this.getContentFromPage();if(D){E.value=this.initialContent=D}$("editframe").innerHTML=A;$("editframe").appendChild(E);if(PBinfo.CurrentWiki.debug){$("content___Frame").contentWindow.onerror=PBwiki.jsDebug}},firstStageLoaded:function(){this.firstStage=true;this.firstLoading=false;document.fire("ui:fckeditor_preloaded")},getResizeHeight:function(){var C=$("content___Frame");var B=(C&&C.cumulativeOffset)?C.cumulativeOffset()[1]:$("editwikipage").cumulativeOffset()[1];if($("page-footer")&&!this.isFullscreen){B+=$("page-footer").getHeight()+parseInt($("page-footer").getStyle("marginBottom"))}B+=$("edit-toolbar-outer").getHeight()+parseInt($("edit-toolbar-outer").getStyle("marginBottom"));var A=document.documentElement.clientHeight-(B+2);A=(A<310?310:A);return A},resizeContentPanel:function(){var A=$("content___Frame");if(!A){return }A.style.height=this.getResizeHeight()+"px";if(A.contentWindow.onresize){A.contentWindow.onresize()}if(this.editMode){this.setEditorFocus()}if(this.isFullscreen){$("editwikipage").setStyle({width:Math.max(document.documentElement.clientWidth,$("main-content").getWidth())+"px"})}},beforeUnload:function(A){A=A||window.event;try{if(this.IsDirty()&&!Page.EditPage.cancel){var C="You have unsaved changes. Continue and discard those changes?";A.returnValue=C;return C}}catch(B){}},startLiveEdit:function(A){A.stop();(new PBwiki.DialogCommands.FindUsers({title:"Invite users to Live View",isLiveEdit:true,isLiveEditor:true,showGroupChats:true,onSelect:function(B){document.fire("live:start_live_editing",B)}.bind(this)}))},onLiveEditStart:function(A){(new PBwiki.APIRequest("SetPageLock",{page:PBwiki.getPageName(),"private":false},{onSuccess:function(B){PBinfo.GetPage.lockinfo=B.lockinfo;Page.EditPage.AutoSave.stop();Page.EditPage.AutoSave.start({draft:{draft_id:B.lockinfo.draft_id,v:0},saveInterval:2});Page.EditPage.AutoSave.lastHTML="";var E=A.memo;var D={wiki:PBinfo.CurrentWiki.name};var C={request_wiki_name:PBinfo.CurrentWiki.name,link:Util.URLRelativeToContext("/"+PBwiki.getPageName()+"#view=liveview",D)};E.each(function(G){C.live_edit_link_for_user=Strophe.getNodeFromJid(G);var H=$J.message({to:G,type:"chat"}).c("body",{unique:PBwiki.Live.randomString()}).c("link-to-page",C).t(PBwiki.getPageName());PBwiki.Live.connection.send(H)});var F=PBwiki.Live.getLiveEditChatForCurrentPage();if(!F){F=new PBwiki.Live.ChatBox(PBwiki.getUID(),true,true);F.show(true)}}}))},onLiveEditDenyRequest:function(F){var D=F.memo;var C=D+"@"+PBwiki.Live.basedomain;var B={wiki:PBinfo.CurrentWiki.name};var A={request_wiki_name:PBinfo.CurrentWiki.name,live_edit_request_deny_for_user:D,link:Util.URLRelativeToContext("/"+PBwiki.getPageName()+"#view=liveview",B)};var E=$J.message({to:C,type:"chat"}).c("body",{unique:PBwiki.Live.randomString()}).c("link-to-page",A).t(PBwiki.getPageName());PBwiki.Live.connection.send(E)},onLiveEditEnd:function(){(new PBwiki.APIRequest("SetPageLock",{page:PBwiki.getPageName(),"private":true},{onSuccess:function(A){PBinfo.GetPage.lockinfo=A.lockinfo;Page.EditPage.AutoSave.stop();Page.EditPage.AutoSave.start()}}))},onEditLockStolen:function(B){var A=B.memo;PBinfo.GetPage.lockinfo=A;alert(((A.editname)?A.editname:"Somebody")+" has stolen your lock on this page.  You will no longer be able to save changes.");Page.EditPage.AutoSave.stop();document.fire("ui:disablesave")},getContentFromPage:function(){if(!$("wikipage-inner")||PBinfo.GetPage.hasPlugins||$$(".searchhilitepage").length>0||$$("table.pbSortable").length>0){return }return $("wikipage-inner").innerHTML},createPage:function(A){A.stop();new PBwiki.DialogCommands.CreateNewPage({noPreloadView:true,onCreate:function(B){window.location.href=PBwiki.getEditURI(B)}})}};Page.Thingbar={pageOpts:{object_types:"page",count:10,offset:0,sortby:"mtime",reverse:true},fileOpts:{object_types:"file",count:10,offset:0,sortby:"mtime",reverse:true},doLoad:function(){if(!$("thingbarLoadIcon")){return true}new MiniTabSwitcher({"linkselectab-pages":"thingbar-pages","linkselectab-images":"thingbar-images"});this.loadPages();$("thingbar-url-link").observe("click",function(A){A.stop();document.fire("ui:insertlink")});$("linkselectab-images").observe("ui:tabswitched",this.filesTab.bind(this));if(!Prototype.Browser.IE){$("linkselectab-images").observe("ui:tabswitched",this.changeTipMessage.bind(this,true));$("linkselectab-pages").observe("ui:tabswitched",this.changeTipMessage.bind(this,false))}},changeTipMessage:function(B){var A=B?"Drag and drop images or files from your desktop to add them to this workspace page.":"To turn text into a link, highlight the text, then click on a page or file from the list above.";$("editor-tip").update("<strong>Tip:&nbsp;</strong> "+A)},showPageLoadIcon:function(){this.pageList.update('<img src="/images/spin_bw.gif" /> Loading '+((!this.pageOpts.count)?"All ":"")+"Pages...")},showFileLoadIcon:function(){this.fileList.update('<img src="/images/spin_bw.gif" /> Loading '+((!this.fileOpts.count)?"All ":"")+"Files...")},loadPages:function(){this.pageList=$("thingbarpages");this.showPageLoadIcon();new PBwiki.APIRequest("GetObjectsNOM",this.pageOpts,{onSuccess:function(A){this.pageList.update("");A.objects.each(function(C){var B=new Element("li").addClassName("tbpage");if(!PBwiki.feature("gui")){B.appendChild(new Element("span"))}B.appendChild(new Element("a",{unselectable:"on",className:PBwiki.feature("gui")?"iconbutton pageicon":""}).update(C.name.toString().escapeHTML()).observe("mousedown",function(D){D.stop();this.pageLink(encodeURIComponent(C.name.toString()),C.oid,C.name.toString());return false}.bind(this)));this.pageList.appendChild(B)}.bind(this));if(this.pageOpts.count&&A._total_count>A.objects.length){if(this.allPagesLink){this.allPagesLink.remove()}this.allPagesLink=new Element("a",{href:"javascript:void(0);",className:"page-thingbar-all"}).update("Show all "+A._total_count+" pages").observe("mousedown",function(B){B.stop();delete this.pageOpts.count;delete this.pageOpts.offset;this.loadPages()}.bind(this));this.pageList.parentNode.appendChild(this.allPagesLink)}if(!this.pageOpts.count&&this.allPagesLink){this.allPagesLink.remove()}}.bind(this),priority:PBwiki.Data.LOW_PRIORITY})},filesTab:function(){this.loadFiles();if(!$("file_upload_button")){if(!$("thingbar-upload")){return }var A=function(){new PBwiki.APIRequest("GetTimes",{},{onSuccess:function(){this.loadFiles();this.loadPages()}.bind(this),method:"get"})}.bind(this);$("thingbar-upload").update('<div class="page-thingbar-upload" id="thingbar-upload"><a href="javascript:void(0);">Upload files</a></div>');new PBwiki.Upload({elm:$("thingbar-upload"),onGetFolder:function(){return PBinfo.CurrentPage.folder||""},onUploaded:A})}},loadFiles:function(){this.fileList=$("thingbarfiles");delete this.fileOpts.type;this.showFileLoadIcon();new PBwiki.APIRequest("GetObjectsNOM",this.fileOpts,{onSuccess:function(A){this.fileList.update("");A.objects.each(function(C){var B=new Element("li").addClassName("tbfile");var D=Util.iconMap[Util.getFileExtension(C.name.toString())];if(!PBwiki.feature("gui")){B.appendChild(new Element("span").addClassName("fileicon").addClassName(D))}B.appendChild(new Element("a",{unselectable:"on",className:PBwiki.feature("gui")?"iconbutton fileicon":""}).update(C.name.toString().escapeHTML()).observe("mousedown",function(E){E.stop();this.fileLink(C.name.toString(),C.oid,Util.isImageFile(C.name.toString()));return false}.bind(this)));this.fileList.appendChild(B);Util.addObjectTooltip(B,C)}.bind(this));if(this.fileOpts.count&&A._total_count>A.objects.length){if(this.allFilesLink){this.allFilesLink.remove()}this.allFilesLink=new Element("a",{href:"javascript:void(0);",className:"page-thingbar-all"}).update("Show all "+A._total_count+" files").observe("mousedown",function(B){B.stop();delete this.fileOpts.count;delete this.fileOpts.offset;this.loadFiles()}.bind(this));this.fileList.parentNode.insertBefore(this.allFilesLink,this.fileList.nextSibling)}else{if(A._total_count==0){this.fileList.update("No recent files")}}if(!this.fileOpts.count&&this.allFilesLink){this.allFilesLink.remove()}}.bind(this),priority:PBwiki.Data.LOW_PRIORITY})},getSelectedText:function(){var A=Page.AjaxEdit.getEditor().Selection.GetSelection();return(A.createRange)?A.createRange().text:A.toString()},pageLink:function(C,B,E){Util.tracking("editor-linking-tb-page");if(PBinfo.CurrentPage.editor_v3){try{PBwiki.currentEditor.setSelectedLink({href:"/w/page/"+B+"/"+C,txt:E,type:"page"})}catch(D){}return }var A=Page.AjaxEdit.getEditor();var F=A.EditorDocument.createElement("a");F.setAttribute("href","/"+C);F.innerHTML=this.getSelectedText()||E.escapeHTML();A.InsertElement(F);A.Focus()},fileLink:function(A,C,F){Util.tracking("editor-linking-tb-file");if(PBinfo.CurrentPage.editor_v3){try{PBwiki.currentEditor.setSelectedLink({href:"/w/file/"+C+"/"+encodeURIComponent(A),txt:A,type:"file"})}catch(D){alert(D.message)}return }var B=Page.AjaxEdit.getEditor();F=F&&this.getSelectedText()=="";var E=B.EditorDocument.createElement(F?"img":"a");E.setAttribute((F)?"src":"href","/f/"+encodeURIComponent(A));if(!F){E.innerHTML=this.getSelectedText()||A}B.InsertElement(E)}};Page.InsertLink=Class.create({classname:"Page.InsertLink",initialize:function(){document.observe("ui:insertlink",this.insertLink.bind(this))},getEditorSelection:function(){try{var A=Page.AjaxEdit.getEditor();A.Selection.Save();var D=A.Selection.MoveToAncestorNode("A");if(D){return{url:D.getAttribute("href",2),txt:D.innerHTML,newWin:(D.getAttribute("target")=="_blank")}}else{var B=Page.AjaxEdit.getEditor().Selection.GetSelection();return{txt:((B.createRange)?B.createRange().text:B.toString()).strip()}}}catch(C){return{txt:""}}},applyEditorLink:function(A){var F=Page.AjaxEdit.getEditor();F.Selection.Restore();var G=F.Selection.MoveToAncestorNode("A");if(G){G.href=A.href;G.setAttribute("href",A.href);G.setAttribute("target",A.newWin?"_blank":null);G.setAttribute("_fcksavedurl",A.href)}else{var E=this.getEditorSelection();var F=Page.AjaxEdit.getEditor();if(A.type=="file"&&Util.isImageFile(A.txt)){Page.Thingbar.fileLink(A.txt,true);return }var D=F.CreateLink(A.href,true);if(D.length==0){var C=F.InsertElement("a");C.setAttribute("href",A.href);C.innerHTML=E.txt.strip().escapeHTML()||A.txt.escapeHTML();D=[C]}for(var B=0;B<D.length;B++){(A.newWin)?D[B].setAttribute("target","_blank"):D[B].removeAttribute("target")}F.Focus()}},insertLink:function(){if(PBinfo.CurrentPage.editor_v3){return }var A=this.getEditorSelection();A.onSelect=this.applyEditorLink.bind(this);new PBwiki.DialogCommands.InsertLink(A)}});PBwiki.init("Ajax Edit: editor v3 toggle - bind click",function(){var A=$("editor_v3_toggle");if(A){A.observe("click",function(B){B.stop();PBwiki.UserPrefs.set(PBconst.kEditorV3PrefsKey,PBinfo.CurrentPage.editor_v3?false:1);setTimeout(function(){window.location.reload()},1000)})}});PBwiki.init(Page.InsertLink);PBwiki.init(Page.AjaxEdit);Page.NewPage={classname:"Page.NewPage",changeContentSource:function(B){var A=B.element();$$(".content-controller").each(function(D){if(D.getAttribute("ui:sister")){var C=(A==D)?"block":"none";$(D.getAttribute("ui:sister")).setStyle({display:C})}})},checkConvertStatus:function(){var A=$("convert_id").value;new PBwiki.APIRequest("GetImportStatus",{convert_id:A},{onSuccess:function(B){if(B.status=="finished"){window.location="/"+encodeURIComponent(B.page)+"?imported=1"}else{if(B.status=="error"){window.location="/newpage.php?convert_id=error"}else{window.setTimeout(Page.NewPage.checkConvertStatus,2000)}}},onFailure:function(B){window.setTimeout(Page.NewPage.checkConvertStatus,2000)},method:"post"})},fileWasSelected:function(B){var D=$("file_data").value.toLowerCase();var C=Util.string_to_reg_exp(PBconst.kPolicyConvertImportRegex);if(!C.test(D)){$("file_data").value="";if($("page_name").value==$("page_name").getAttribute("ui:inferred_filename")){$("page_name").value=""}alert("PBworks cannot import that type of file.\n\nSupported document types:\n- Comma-separated values (.csv)\n- Microsoft Word (.doc)\n- OpenDocument Spreadsheet (.ods)\n- OpenDocument Text (.odt)\n- WordPerfect (.wpd)\n- Microsoft Excel (.xls)");return }if($("page_name").value!==""&&$("page_name").value!=$("page_name").getAttribute("ui:inferred_filename")){return }var A=Page.NewPage.fileNameToPageName(D);$("page_name").value=A;$("page_name").setAttribute("ui:inferred_filename",A)},fileNameToPageName:function(A){if(A[0]=="."){A=A.substring(1)}if(A.lastIndexOf(".")>=0){A=A.substring(0,A.lastIndexOf("."))}if(A.lastIndexOf("\\")>=0){A=A.substr(A.lastIndexOf("\\")+1)}A=Util.strToPageName(A);return A},initialize:function(){if($("convert_id")){return Page.NewPage.initializeConversionStatus()}else{if($("createpageform")){return Page.NewPage.initializeCreatePageForm()}}},initializeConversionStatus:function(){window.setTimeout(Page.NewPage.checkConvertStatus,1000)},initializeCreatePageForm:function(){if($("tipmoreoptions")){Event.observe("tipmoreoptions","click",Page.NewPage.toggleMoreOptions.bind(this))}Event.observe("page_name","keydown",Page.NewPage.isCharacterValid.bind(this));if($("security")){Event.observe("security","click",Page.NewPage.securityChanged.bind(this))}if($("file_data")){Event.observe("file_data","change",Page.NewPage.fileWasSelected.bind(this))}Event.observe("create-page-form","submit",Page.NewPage.submit.bind(this));if($("createpagemore")){Event.observe("createpagemore","click",Page.NewPage.toggleMoreOptions.bind(this));Page.NewPage.toggleElements=$$($("createpagemore").getAttribute("ui:elements"));Page.NewPage.link=$("createpagemore")}$$(".content-controller").each(function(A){Event.observe(A,"click",Page.NewPage.changeContentSource.bind(A))})},isCharacterValid:function(A){},toggleMoreOptions:function(D){var B=Page.NewPage.link;var C=B.innerHTML;var A=B.getAttribute("ui:alternate");if(A){B.setAttribute("ui:alternate",B.innerHTML);B.innerHTML=A}$(B.parentNode.parentNode).toggleClassName("expanded");B.blur();D.stop();Page.NewPage.toggleElements.invoke("toggle");$("createpageoptions_visible").setAttribute("value",$(B.parentNode.parentNode).hasClassName("expanded")?"true":"false");$("page_name").focus()},securityChanged:function(B){if(!$("page-content-import-security-warning")){return }var A=($("security").value=="default security")?"none":"block";$("security-type").innerHTML=$("security").value;$("page-content-import-security-warning").setStyle({display:A})},submit:function(C){var A=$("page_name").value;if(!A){$("error-text").update("Empty page names are not allowed");Event.stop(C);return }var B;for(B=0;B<PBconst.kInvalidPageCharacters.length;B++){if(A.indexOf(PBconst.kInvalidPageCharacters[B])>=0){$("error-text").update("Page names can't contain any of the following characters: "+PBconst.kInvalidPageCharacters.escapeHTML());Event.stop(C);return }}$$(".form-action-button").each(function(D){D.setAttribute("disabled","disabled")})}};var stIsIE=
/*@cc_on!@*/
false;var _timer=false;sorttable={init:function(){if(arguments.callee.done){return }arguments.callee.done=true;if(_timer){clearInterval(_timer)}if(!document.createElement||!document.getElementsByTagName){return }sorttable.DATE_RE=/^(\d\d?)[\/\.-](\d\d?)[\/\.-]((\d\d)?\d\d)$/;forEach(document.getElementsByTagName("table"),function(A){if(A.className.search(/\bpbSortable\b/)!=-1){sorttable.makeSortable(A)}})},makeSortable:function(B){if(B.getElementsByTagName("thead").length==0){the=document.createElement("thead");the.appendChild(B.rows[0]);B.insertBefore(the,B.firstChild)}if(B.tHead==null){B.tHead=B.getElementsByTagName("thead")[0]}if(B.tHead.rows.length!=1){return }sortbottomrows=[];for(var A=0;A<B.rows.length;A++){if(B.rows[A].className.search(/\bsortbottom\b/)!=-1){sortbottomrows[sortbottomrows.length]=B.rows[A]}}if(sortbottomrows){if(B.tFoot==null){tfo=document.createElement("tfoot");B.appendChild(tfo)}for(var A=0;A<sortbottomrows.length;A++){tfo.appendChild(sortbottomrows[A])}delete sortbottomrows}headrow=B.tHead.rows[0].cells;for(var A=0;A<headrow.length;A++){if(!headrow[A].className.match(/\bsorttable_nosort\b/)){mtch=headrow[A].className.match(/\bsorttable_([a-z0-9]+)\b/);if(mtch){override=mtch[1]}if(mtch&&typeof sorttable["sort_"+override]=="function"){headrow[A].sorttable_sortfunction=sorttable["sort_"+override]}else{headrow[A].sorttable_sortfunction=sorttable.guessType(B,A)}headrow[A].sorttable_columnindex=A;headrow[A].sorttable_tbody=B.tBodies[0];dean_addEvent(headrow[A],"click",function(D){if(this.className.search(/\bsorttable_sorted\b/)!=-1){sorttable.reverse(this.sorttable_tbody);this.className=this.className.replace("sorttable_sorted","sorttable_sorted_reverse");this.removeChild(document.getElementById("sorttable_sortfwdind"));sortrevind=document.createElement("span");sortrevind.id="sorttable_sortrevind";sortrevind.setAttribute("style","float: left;");sortrevind.innerHTML=stIsIE?'&nbsp<font face="webdings">5</font>&nbsp;':"&nbsp;&#x25B4;&nbsp;";this.insertBefore(sortrevind,this.firstChild);return }if(this.className.search(/\bsorttable_sorted_reverse\b/)!=-1){sorttable.reverse(this.sorttable_tbody);this.className=this.className.replace("sorttable_sorted_reverse","sorttable_sorted");this.removeChild(document.getElementById("sorttable_sortrevind"));sortfwdind=document.createElement("span");sortfwdind.id="sorttable_sortfwdind";sortfwdind.setAttribute("style","float: left;");sortfwdind.innerHTML=stIsIE?'&nbsp<font face="webdings">6</font>&nbsp;':"&nbsp;&#x25BE;&nbsp;";this.insertBefore(sortfwdind,this.firstChild);return }theadrow=this.parentNode;forEach(theadrow.childNodes,function(E){if(E.nodeType==1){E.className=E.className.replace("sorttable_sorted_reverse","");E.className=E.className.replace("sorttable_sorted","")}});sortfwdind=document.getElementById("sorttable_sortfwdind");if(sortfwdind){sortfwdind.parentNode.removeChild(sortfwdind)}sortrevind=document.getElementById("sorttable_sortrevind");if(sortrevind){sortrevind.parentNode.removeChild(sortrevind)}this.className+=" sorttable_sorted";sortfwdind=document.createElement("span");sortfwdind.id="sorttable_sortfwdind";sortfwdind.setAttribute("style","float: left;");sortfwdind.innerHTML=stIsIE?'&nbsp<font face="webdings">6</font>&nbsp;':"&nbsp;&#x25BE;&nbsp;";this.insertBefore(sortfwdind,this.firstChild);row_array=[];col=this.sorttable_columnindex;rows=this.sorttable_tbody.rows;for(var C=0;C<rows.length;C++){row_array[row_array.length]=[sorttable.getInnerText(rows[C].cells[col]),rows[C]]}row_array.sort(this.sorttable_sortfunction);tb=this.sorttable_tbody;for(var C=0;C<row_array.length;C++){tb.appendChild(row_array[C][1])}delete row_array})}}},guessType:function(C,B){sortfn=sorttable.sort_alpha;for(var A=0;A<C.tBodies[0].rows.length;A++){text=sorttable.getInnerText(C.tBodies[0].rows[A].cells[B]);if(text!=""){if(text.match(/^-?[�$�]?[\d,.]+%?$/)){return sorttable.sort_numeric}possdate=text.match(sorttable.DATE_RE);if(possdate){first=parseInt(possdate[1]);second=parseInt(possdate[2]);if(first>12){return sorttable.sort_ddmm}else{if(second>12){return sorttable.sort_mmdd}else{sortfn=sorttable.sort_ddmm}}}}}return sortfn},getInnerText:function(B){hasInputs=(typeof B.getElementsByTagName=="function")&&B.getElementsByTagName("input").length;if(B.getAttribute("sorttable_customkey")!=null){return B.getAttribute("sorttable_customkey")}else{if(typeof B.textContent!="undefined"&&!hasInputs){return B.textContent.replace(/^\s+|\s+$/g,"")}else{if(typeof B.innerText!="undefined"&&!hasInputs){return B.innerText.replace(/^\s+|\s+$/g,"")}else{if(typeof B.text!="undefined"&&!hasInputs){return B.text.replace(/^\s+|\s+$/g,"")}else{switch(B.nodeType){case 3:if(B.nodeName.toLowerCase()=="input"){return B.value.replace(/^\s+|\s+$/g,"")}case 4:return B.nodeValue.replace(/^\s+|\s+$/g,"");break;case 1:case 11:var C="";for(var A=0;A<B.childNodes.length;A++){C+=sorttable.getInnerText(B.childNodes[A])}return C.replace(/^\s+|\s+$/g,"");break;default:return""}}}}}},reverse:function(A){newrows=[];for(var B=0;B<A.rows.length;B++){newrows[newrows.length]=A.rows[B]}for(var B=newrows.length-1;B>=0;B--){A.appendChild(newrows[B])}delete newrows},sort_numeric:function(B,A){aa=parseFloat(B[0].replace(/[^0-9.-]/g,""));if(isNaN(aa)){aa=0}bb=parseFloat(A[0].replace(/[^0-9.-]/g,""));if(isNaN(bb)){bb=0}return aa-bb},sort_alpha:function(B,A){if(B[0]==A[0]){return 0}if(B[0]<A[0]){return -1}return 1},sort_ddmm:function(B,A){mtch=B[0].match(sorttable.DATE_RE);y=mtch[3];m=mtch[2];d=mtch[1];if(m.length==1){m="0"+m}if(d.length==1){d="0"+d}dt1=y+m+d;mtch=A[0].match(sorttable.DATE_RE);y=mtch[3];m=mtch[2];d=mtch[1];if(m.length==1){m="0"+m}if(d.length==1){d="0"+d}dt2=y+m+d;if(dt1==dt2){return 0}if(dt1<dt2){return -1}return 1},sort_mmdd:function(B,A){mtch=B[0].match(sorttable.DATE_RE);y=mtch[3];d=mtch[2];m=mtch[1];if(m.length==1){m="0"+m}if(d.length==1){d="0"+d}dt1=y+m+d;mtch=A[0].match(sorttable.DATE_RE);y=mtch[3];d=mtch[2];m=mtch[1];if(m.length==1){m="0"+m}if(d.length==1){d="0"+d}dt2=y+m+d;if(dt1==dt2){return 0}if(dt1<dt2){return -1}return 1},shaker_sort:function(F,D){var A=0;var C=F.length-1;var G=true;while(G){G=false;for(var B=A;B<C;++B){if(D(F[B],F[B+1])>0){var E=F[B];F[B]=F[B+1];F[B+1]=E;G=true}}C--;if(!G){break}for(var B=C;B>A;--B){if(D(F[B],F[B-1])<0){var E=F[B];F[B]=F[B-1];F[B-1]=E;G=true}}A++}}};PBwiki.init("sorttable",sorttable.init);function dean_addEvent(B,D,C){if(B.addEventListener){B.addEventListener(D,C,false)}else{if(!C.$$guid){C.$$guid=dean_addEvent.guid++}if(!B.events){B.events={}}var A=B.events[D];if(!A){A=B.events[D]={};if(B["on"+D]){A[0]=B["on"+D]}}A[C.$$guid]=C;B["on"+D]=handleEvent}}dean_addEvent.guid=1;function removeEvent(A,C,B){if(A.removeEventListener){A.removeEventListener(C,B,false)}else{if(A.events&&A.events[C]){delete A.events[C][B.$$guid]}}}function handleEvent(D){var C=true;D=D||fixEvent(((this.ownerDocument||this.document||this).parentWindow||window).event);var A=this.events[D.type];for(var B in A){this.$$handleEvent=A[B];if(this.$$handleEvent(D)===false){C=false}}return C}function fixEvent(A){A.preventDefault=fixEvent.preventDefault;A.stopPropagation=fixEvent.stopPropagation;return A}fixEvent.preventDefault=function(){this.returnValue=false};fixEvent.stopPropagation=function(){this.cancelBubble=true};if(!Array.forEach){Array.forEach=function(D,C,B){for(var A=0;A<D.length;A++){C.call(B,D[A],A,D)}}}Function.prototype.forEach=function(A,D,C){for(var B in A){if(typeof this.prototype[B]=="undefined"){D.call(C,A[B],B,A)}}};String.forEach=function(A,C,B){Array.forEach(A.split(""),function(E,D){C.call(B,E,D,A)})};var forEach=function(A,D,B){if(A){var C=Object;if(A instanceof Function){C=Function}else{if(A.forEach instanceof Function){A.forEach(D,B);return }else{if(typeof A=="string"){C=String}else{if(typeof A.length=="number"){C=Array}}}}C.forEach(A,D,B)}};SearchHilite=Class.create({classname:"SearchHilite",initialize:function(){if(/SearchFor\=/.test(window.location.search)){var C=window.location.search.replace(/[a-zA-Z0-9\?\&\=\%\#]+SearchFor\=(\w+)(\&.*)?/,"$1");var A=C.replace(/\%20|\+/g,"|");var B=A.split("|");this.highlight($("wikipage-inner"),B);this.highlight($("comments"),B);var E=$$("span.searchhilitepage");if(E.length>0){var D=new Element("span").update('&nbsp;[ <a href="'+window.location.href.replace(window.location.search,"")+'">remove highlighting</a> ]');E[0].insert({after:D})}}},highlight:function(C,E){for(var B=0;B<E.length;B++){var D=new RegExp(">([^<]*)?("+E[B]+")([^>]*)?<","ig");var A=C.innerHTML;C.innerHTML=A.replace(D,'>$1<span class="searchhilitepage">$2</span>$3<')}}});PBwiki.init(SearchHilite);Page.AjaxSave={classname:"Page.AjaxSave",initialize:function(){document.observe("ui:fckeditor_oncomplete",Page.AjaxSave.activate.bind(Page.AjaxSave))},activate:function(){this.saveButton=$("edit-toolbar").down(".button");this.saveButton.observe("click",this.saveContent.bind(this));this.saveButton.setAttribute("onclick","");this.tagfield=$("tagfield");this.initialTags=this.tagfield.value;document.observe("ui:disablesave",this.disableSave.bind(this));document.observe("ui:autosaveSuccess",this.autosaveSuccess.bind(this));document.observe("ui:autosaveFailure",this.autosaveFailure.bind(this));document.observe("ui:savepage",this.saveContent.bind(this))},saveContent:function(D){if(D){D.stop()}if(this.saveButton.hasClassName("disabled")){return }this.disableSave();this.setMsg("Saving "+PBwiki.getPageName().toString().escapeHTML()+"...",true);var C=[];var A=window.location.search.toQueryParams()||{};if(A.folder||A.security){var B={page:PBwiki.getPageName()};if(A.folder){B.folder=decodeURIComponent(A.folder.toString().replace(/\+/g," "))}if(A.security){B.security=A.security}B.html=Page.AjaxEdit.getEditor().GetData(true);C.push(["CreatePage",B,{onFailure:this.saveFail.bind(this),onSuccess:this.saveSuccess.bind(this),incUsess:true}])}else{var B={create_if_missing:true};B.page=PBwiki.getPageName();B.html=Page.AjaxEdit.getEditor().GetData(true);C.push(["PutPage",B,{onFailure:this.saveFail.bind(this),onSuccess:this.saveSuccess.bind(this),incUsess:true}])}C.push(["UnlockPage",{page:PBwiki.getPageName()},{onFailure:this.saveFail.bind(this)}]);if(this.initialTags!=this.tagfield.value){C.push(["SetPageTags",{page:PBwiki.getPageName(),tags:this.tagfield.value},{onFailure:this.saveFail.bind(this)}])}new PBwiki.MultiAPIRequest(C,{incUsess:true,onFailure:this.saveFail.bind(this)})},autosaveSuccess:function(){if(this.getMsg()==this.autosaveErrorMsg){this.clearMsg()}},autosaveFailure:function(A){if($("save_msg").style.display!="inline"){this.autosaveErrorMsg=A.memo;this.setMsg(A.memo)}},saveSuccess:function(B){Page.EditPage.cancel=true;this.setMsg("Page Saved Successfully",false,true);var A="/"+(B.page?B.page:PBwiki.getPageName());if(Prototype.Browser.WebKit){A+=((window.location.search.indexOf("?unlock=true")!=-1)?"":"?unlock=true")}window.location=A},saveFail:function(B,A){if(A==403&&$H(PBwiki.getSessCookie()).values()[0]==""){this.setMsg("You have been logged out in another window.  Log back in and try again",false)}else{this.setMsg(B,false)}this.enableSave()},setMsg:function(B,A){var C=$("save_msg");C.style.display="inline";C.innerHTML=B;C.style.background=(A)?"url(/images/spin_bw.gif) no-repeat center left":"none"},clearMsg:function(){$("save_msg").style.display="none"},getMsg:function(){return $("save_msg").innerHTML},disableSave:function(){Page.EditPage.AutoSave.stop();this.saveButton.addClassName("disabled");this.saveButton.onclick=null;this.saveButton.setAttribute("href","javascript:void(0);");$("cancelButton").onclick=null;$("cancelButton").addClassName("disabled");try{this.saveButton.blur()}catch(A){}Page.EditPage.cancel=true},enableSave:function(){Page.EditPage.AutoSave.start();this.saveButton.removeClassName("disabled");$("cancelButton").removeClassName("disabled");Page.EditPage.cancel=false}};PBwiki.init(Page.AjaxSave);SendALink=Class.create({classname:"SendALink",debug:false,initialize:function(A){$$("span.sendalink-milestone a").each(function(B){B.observe("click",this.milestoneLinkObserver.bindAsEventListener(this,B))}.bind(this));this.element=$(A);if(!this.element){return }this.link=this.element.nodeName.toUpperCase()=="A"?this.element:this.element.down("a");if(this.debug){PBwiki.debug(this.link)}this.link.observe("click",this.linkObserver.bindAsEventListener(this));if(window.location.hash=="#send-a-link"){window.location.hash="";this.linkObserver(null)}},milestoneLinkObserver:function(D,C){if(D){D.stop()}var F=C.up("div.milestone");var A=F.getAttribute("milestone_id");var B=F.down("span.milestone-title");var E=B.textContent||B.innerText;if(!A){PBwiki.error("milestone_id not found, unable to continue");return }new PBwiki.DialogCommands.SendALink({dimensions:{width:510,height:"auto"},url:Util.URLRelativeToContext("/w/tasks/#milestone"+A,{wiki:PBinfo.CurrentWiki.name}),title:"Project Milestones",description:'the milestone "'+E+'"',destination_type:PBconst.kSendALinkType.Milestone})},linkObserver:function(B){if(B){B.stop()}var A={dimensions:{width:510,height:"auto"}};if(PBinfo.CurrentPage.page){A.page=PBinfo.CurrentPage.page;A.destination_type=PBconst.kSendALinkType.Page;A.objectname=A.page}else{if(PBinfo.CurrentFile){A.destination_type=PBconst.kSendALinkType.File;A.objectname=PBinfo.CurrentFile.name;A.title=PBinfo.CurrentFile.name;A.description='"'+A.title+'" on this workspace';A.url=window.location.toString()}else{if(PBwiki.ObjectBrowser&&PBwiki.ObjectBrowser.view&&PBwiki.ObjectBrowser.view.name=="ViewFileRevision"){A.url=window.location.toString();A.title=PBwiki.ObjectBrowser.view.options.parameter;A.description='"'+A.title+'" on this workspace';A.destination_type=PBconst.kSendALinkType.File;A.objectname=PBwiki.ObjectBrowser.view.refreshOptions.file}else{if(PBwiki.ObjectBrowser&&PBwiki.ObjectBrowser.view&&PBwiki.ObjectBrowser.view.displayTitle){if(PBwiki.ObjectBrowser.view.metadata){A.url=Util.URLRelativeToContext("/w/folder/"+encodeURIComponent(PBwiki.ObjectBrowser.view.metadata.name),{wiki:PBinfo.CurrentWiki.name});A.title=PBwiki.ObjectBrowser.view.displayTitle;A.description='"'+A.title+'" on this workspace';A.destination_type=PBconst.kSendALinkType.Folder;A.objectname=PBwiki.ObjectBrowser.view.metadata.name}else{A.url=Util.URLRelativeToContext("/w/browse/#view="+PBwiki.ObjectBrowser.view.name,{wiki:PBinfo.CurrentWiki.name});A.title=PBwiki.ObjectBrowser.view.displayTitle;A.destination_type=PBconst.kSendALinkType.View;A.objectname="/"}}else{if(PBwiki.Project&&PBwiki.Project.currentView){A.url=window.location.toString();A.title=PBwiki.Project.currentView.getPageTitle();A.objectname=$("project-action").getAttribute("task_id");A.description='the task "'+A.title+'"';A.destination_type=PBconst.kSendALinkType.Task}}}}}new PBwiki.DialogCommands.SendALink(A)}});PBwiki.init(SendALink,"sendalink");PBwiki.DialogCommands.SendALink=Class.create(PBwiki.DialogCommands.TemplateDialog,{classname:"PBwiki.DialogCommands.SendALink",templateName:"sendalink",title:"Share this page",initialize:function($super,A){if(A.destination_type){this.title="Share this "+A.destination_type}else{this.title="Share this page"}$super(A)},setupDialog:function($super){$super();this.setupInstructions();this.setupUserList();this.setupStar();this.message=$("sendalink_message");Event.observe("sendalink_send","click",this.submit.bind(this))},submit:function(A){A.stop();if(this.userList.empty()){window.alert("Please select people on the workspace to share this page with.");return false}var B={to_uids:this.userList.getUIDs().join(","),destination_type:this.options.destination_type,objectname:this.options.objectname};if(this.options.page){B.page=this.options.page}if(this.options.url){B.url=this.options.url}if(this.options.title){B.title=this.options.title}if(this.allowEmails()){B.to_emails=this.userList.getExtraEmails().join(",");B.new_user_permission=$("sendalink_to_perm-guest").checked?"guest":"user";if($("sendalink-trackuser").checked){B.track_new_users=true}}if(!this.message.value.blank()){B.message=this.message.value.strip()}if(this.userList.contains(PBconst.kSendALinkAllUsersWithAccess)){B.send_to_all_users_with_access=true}new PBwiki.APIRequest("SendALink",{},{method:"post",parameters:B,onSuccess:function(C){document.fire("dialog:close");document.fire("ui:onNotifyUser",{message:"Successfully shared this page.",mode:"success"})}.bind(this),onFailure:function(C){document.fire("dialog:close");document.fire("ui:onNotifyUser",{message:"Failed to share the page. "+C,mode:"error"})}.bind(this)});return true},setupInstructions:function(){if(this.options.description){$("sendalink-workspace-page-title").update(this.options.description.escapeHTML());$("sendalink-network-page-title").update(this.options.description.escapeHTML())}if(this.options.destination_type){$$(".sendalink-destination-type").each(function(A){A.update(this.options.destination_type.escapeHTML())}.bind(this))}$$("a.sendalink-add-all-users").each(function(A){A.observe("click",this.onAddAllUsersClicked.bind(this))}.bind(this));if(PBinfo.CurrentNetwork){$("sendalink-workspace-instructions").hide();if(this.allowEmails()){$("sendalink-network-instructions").hide();$("sendalink-network-admin-instructions").show()}else{$("sendalink-network-instructions").show();$("sendalink-network-admin-instructions").hide()}$("sendalink-advice-network").show();$("sendalink-find-users").observe("click",this.onFindUsersClicked.bind(this))}else{$("sendalink-workspace-instructions").show();$("sendalink-network-instructions").hide();$("sendalink-network-admin-instructions").hide();$("sendalink-advice-network").hide()}},onAddAllUsersClicked:function(C){var B={name:"All workspace members with access",uid:PBconst.kSendALinkAllUsersWithAccess};var A=new PBwiki.Components.UserAutoComplete.SelectedUser(this.userAutoComplete,B);this.userAutoComplete.selectedUserList.append(A)},onFindUsersClicked:function(A){var B=new PBwiki.FindNetworkUsers.Dialog({callback:this.onUsersSelected.bind(this),exclude_self:false})},onUsersSelected:function(A){$(A).each(function(C){var B=new PBwiki.Components.UserAutoComplete.SelectedUser(this.userAutoComplete,C);this.userAutoComplete.selectedUserList.append(B)}.bind(this))},setupUserList:function(){var A=$("sendalink_to");if(A){if(this.allowEmails()){A.setAttribute("placeholder","Type a name or email address");$("sendalink-to-advice").hide();document.stopObserving("ui:autoCompleteListChange");document.observe("ui:autoCompleteListChange",this.togglePermissionLevel.bind(this));$("sendalink-guest-help-icon").observe("click",function(E){if(E){E.stop()}$("sendalink-guest-help-icon").hide();$("sendalink-guest-help").show()});$("sendalink_to_perm-guest").observe("change",this.togglePermissionLevel.bind(this));$("sendalink_to_perm-user").observe("change",this.togglePermissionLevel.bind(this))}new InputText(A);var D,C;if(this.options.title==="All Pages"||this.options.title==="All Files"||this.options.title==="Unfiled Items"||this.options.destination_type===PBconst.kSendALinkType.View||this.options.destination_type===PBconst.kSendALinkType.Milestone||this.options.destination_type===PBconst.kSendALinkType.Task){D="GetPageUsers";C={page:PBinfo.CurrentWiki.front_page}}else{if(this.options.destination_type===PBconst.kSendALinkType.File){D="GetFileUsers";C={file:this.options.title}}else{if(this.options.destination_type===PBconst.kSendALinkType.Folder){D="GetFolderUsers";C={folder:this.options.title}}else{D="GetPageUsers";C={page:PBinfo.CurrentPage.page}}}}var B={userListContainer:$("sendalink_to_container"),userList:$("sendalink_to_list"),elm:A,apiMethod:D,requestOptions:C,allowEmails:this.allowEmails()};this.userAutoComplete=new PBwiki.Components.UserAutoComplete(B);this.userList=this.userAutoComplete.selectedUserList}},togglePermissionLevel:function(){var A=this.userList.getExtraEmails();if(PBinfo.CheckPermissions.network_perm=="admin"){$$(".sendalink-must-add-as-guests").invoke("hide")}else{$$(".sendalink-must-add-as-guests").invoke("show");$("sendalink-guest-row").select(".radio-label").invoke("hide");$("sendalink_to_perm-guest").checked="checked"}if(A.length==0){$("sendalink-guest-row").hide()}else{if(A.length==1){$$(".sendalink-guest-plural").map(function(B){B.hide()});$$(".sendalink-guest-singular").map(function(B){B.show()});$("sendalink-guest-row").show()}else{$$(".sendalink-guest-singular").map(function(B){B.hide()});$$(".sendalink-guest-plural").map(function(B){B.show()});$("sendalink-guest-row").show()}}if(A.length&&PBwiki.feature("user_tracking")&&(PBinfo.CheckPermissions&&(PBinfo.CheckPermissions.wikiperm=="admin"||PBinfo.CheckPermissions.network_perm=="admin"))&&$("sendalink_to_perm-guest").checked){$("sendalink-star-hr").show();$("sendalink-starred-row").hide();$("sendalink-unstarred-row").hide();$("sendalink-trackuser-row").show()}else{$("sendalink-trackuser-row").hide();this.setupStar()}},allowEmails:function(){var A=(PBinfo.CheckPermissions.network_perm=="admin")||(PBinfo.CheckPermissions.network_perm=="user"&&PBinfo.CheckPermissions.wikiperm=="admin");return PBinfo&&PBinfo.CheckPermissions&&PBinfo.CheckPermissions.network_perm&&A&&PBinfo.CurrentWiki&&PBinfo.CurrentWiki.network_public&&$$(".security_btn_hidden").length===0&&$$(".security_btn_custom").length===0},setupStar:function(){if(!PBinfo.CurrentObject){return }var A="",B;if(PBinfo.CurrentPage&&PBinfo.CurrentPage.page){A=PBinfo.CurrentPage.page;B="page"}else{if(PBinfo.CurrentFile){A=PBinfo.CurrentFile.name;B="file"}}if(!A){return }$("sendalink-page-name").update("'"+A+"'");$$(".sendalink-object-type").invoke("update",B);this.starred=PBwiki.UserPrefs.Stars.is_current_page_starred();if(PBinfo.CurrentNetwork){$$(".network-notifications-message").each(function(C){C.show()})}else{if(PBinfo.CurrentWiki.granular_notifications){$$(".granular-notifications-message").each(function(C){C.show()})}else{$$(".no-granular-notifications-message").each(function(C){C.show()})}}if(this.starred){$("sendalink-star-hr").show();$("sendalink-starred-row").show();$("sendalink-unstarred-row").hide();return }$("sendalink-star-hr").show();$("sendalink-starred-row").hide();$("sendalink-unstarred-row").show();$("sendalink-star").stopObserving("click");$("sendalink-star").observe("click",function(C){C.stop();this.toggleStarState();$("sendalink-star").addClassName("working");PBwiki.UserPrefs.Stars.set_object_starred(this.starred,{onFailure:this.starPageError.bind(this),onSuccess:this.didStarPage.bind(this)});Util.tracking("page-star-sendalink-"+(this.starred?"on":"off"))}.bind(this))},didStarPage:function(A){$("sendalink-star").removeClassName("working")},starPageError:function(A){this.toggleStarState()},toggleStarState:function(B){var A=!this.starred;this.starred=A;if(A){$("sendalink-star").addClassName("starred")}else{$("sendalink-star").removeClassName("starred")}document.fire("ui:hideBubbles")}});PBwiki.init("pbwiki.navbar.js",function(){if(!PBinfo.CurrentWiki||!PBinfo.GetRecentWikis||(!$("network-crumb-all-workspaces-link")&&!$("network-crumb-my-link"))){return }var C=[];$(PBinfo.GetRecentWikis.wikis).each(function(F){var G=F.icon?("icon-"+F.icon):"bullet";C.push({name:F.name,txt:F.title.escapeHTML(),className:"iconbutton "+G,onClick:function(){window.location=F.url}})});var D=$("network-crumb-all-workspaces-link")||$("network-crumb-my-link");var B="Go to workspaces list ("+PBinfo.GetRecentWikis.total_wiki_count+" total)";C.push({name:"all-workspaces",txt:B,className:"iconbutton goback",onClick:function(){window.location=D.href}});var A=new PBMenu({toggle:D,anchor:D.up("li"),items:C});var E=A.options.anchor.getDimensions().width+10;if(A.elm.getDimensions().width<E){A.elm.style.width=E+"px"}if($("network-bar").hasClassName("standalone")){$("network-crumb-all-workspaces-link-pbmenu").addClassName("standalone")}else{$("network-crumb-all-workspaces-link-pbmenu").addClassName("network")}});function history_slider_drawPage(B){var A=B.html;var C=A.replace(/<a([^>]+)href="\/([^\"]+)"/gi,'<a$1onClick="loadPage(\'$2\');return false;" href="/$2"');$("wikipage-inner").innerHTML=C;$("pagetitle").innerHTML=B.name;$("page-history-ago").innerHTML=Util.time_ago(PBwiki.getTimestamp()-B.mtime)+" ago";$$("#page-editor a").each(function(D){if(B.author.last_name){D.href="/user"+B.author.uid;D.innerHTML=B.author.first_name+" "+B.author.last_name}else{D.href="#";D.innerHTML="PBworks"}});document.location.hash="p="+escape(B.name)+"."+B.mtime}PBwiki.HistorySlider=Class.create({classname:"PBwiki.HistorySlider",revs:{},initialize:function($super,A){if(!$("history-slider")){return }this.loadSlider();this.loadPage(PBinfo.CurrentPage.page);$super(A)},loadSlider:function(){var A=PBinfo.GetPage.revcount;var B;if(A){rv=new PBwiki.APIRequest("GetPageRevisions",{verbose:false,page:PBinfo.CurrentPage.page},{cacheability:["pagetime"],onSuccess:function(D){if(D.revisions){revs=D.revisions;if(document.location.hash){var E=document.location.hash;var C=/\.(\d+)/;var F=E.match(C);for(i=0;i<revs.length;i++){if(revs[i]==F[1]){B.setValue(i+1)}}}}}});B=new Control.Slider("history-slider","history-track",{range:$R(1,A),sliderValue:A,onChange:function(C){this.onSlide(C)},onSlide:function(C){if(revs.length){ts=revs[parseInt(C,10)-1];rv=new PBwiki.APIRequest("GetPage",{page:PBinfo.CurrentPage.page,revision:ts},{cacheability:["pagetime","foldertime","permtime"],onSuccess:function(D){history_slider_drawPage(D)}})}}})}},loadPage:function(B){var A=B.replace(/-/g," ");rv=new PBwiki.APIRequest("GetPage",{page:A},{cacheability:["pagetime","foldertime","permtime"],onSuccess:function(C){history_slider_drawPage(C)}})}});PBwiki.init(PBwiki.HistorySlider);PBwiki.DataProviders.NOMObjects=Class.create(PBwiki.DataProviders.Abstract,{initialize:function($super){$super();if(!PBinfo.CurrentWiki){throw"Cannot determine current workspace"}this.total_data_count=(PBinfo.CurrentWiki.pagecount||0)+(PBinfo.CurrentWiki.filecount||0)},getAPIMethod:function(){return"GetObjectsNOM"},getAPIArguments:function(B){var A={sortby:"name",object_types:"page,file,folder"};if(B){A.filter=B}return A},getAPIOutput:function(A){return A.objects},filterData:function(D,C){var E=this.tokenize(C);var F=D;var B=function(G){return G.name.toLowerCase().indexOf(E[A])!==-1};for(var A=0;A<E.length;A++){F=F.findAll(B)}return F}});PBwiki.DataProviders.WorkspaceUsers=Class.create(PBwiki.DataProviders.Abstract,{initialize:function($super){$super();if(!PBinfo.CurrentWiki){throw"Cannot determine current workspace"}this.total_data_count=PBinfo.CurrentWiki.usercount||0},getAPIMethod:function(){return"GetUsersInfos"},getAPIArguments:function(B){var A={sortby:"name",verbose:true};if(B){A.filter=B}return A},getAPIOutput:function(A){return A.uids},filterData:function(D,C){var E=this.tokenize(C);var F=D;var B=function(G){if(G.name&&G.name.toLowerCase().indexOf(E[A])!==-1){return true}if(G.email&&G.email.toLowerCase().indexOf(E[A])!==-1){return true}if(G.username&&G.username.toLowerCase().indexOf(E[A])!==-1){return true}return false};for(var A=0;A<E.length;A++){F=F.findAll(B)}return F}});PBwiki.DataProviders=PBwiki.DataProviders||{};PBwiki.DataProviders.Search=Class.create(PBwiki.DataProviders.Abstract,{initialize:function(A){this.options=A||{};this.isFetching=false},tokenize:function(A){return A.toLowerCase().split(/[^a-zA-Z0-9]/).without("")},getData:function(C,F){this.last_filter=C;this.last_callback=F;if(this.isFetching){return false}var E=this.tokenize(C);var B=E.findAll(function(G){return G.length>1});if(B.length==0){return false}var A=B.join(" ");this.isFetching=true;var D={q:A};if(this.options.search_id){D.search_id=this.options.search_id}if(this.options.boost){D.boost=this.options.boost}(new PBwiki.APIRequest("AdvancedNetworkSearchAutocomplete",D,{onSuccess:function(G){this.isFetching=false;F(G.results,G.total);if(this.last_filter!=C){this.getData(this.last_filter,this.last_callback)}}.bind(this)}));return false}});PBwiki.Components.CharacterCounter=Class.create({initialize:function(A){this.target=A.target;this.max=A.max;this.updateListener=this.update.bindAsEventListener(this);this.target.observe("change",this.updateListener);this.target.observe("keyup",this.updateListener);this.element=new Element("span");this.element.addClassName("character-count");A.parent.insert(this.element);this.update()},update:function(A){this.element.update(this.target.value.length+"/"+this.max);if(this.target.value.length>this.max){this.element.addClassName("over")}else{this.element.removeClassName("over")}},destroy:function(){this.target.stopObserving("keyup",this.updateListener);this.target.stopObserving("change",this.updateListener);this.element.remove()}});PBwiki.ObjectTooltip=Class.create(PBwiki.Tooltip,{templateSource:'<div class="xtop">\n  <div class="xb2"></div>\n  <div class="xb3"></div>\n  <div class="xb4"></div>\n</div>\n<div class="xboxcontent">\n  <div class="loading"></div>\n  <div class="content" style="display: none;">\n    <div class="info">\n      <h3>Info</h3>\n      <div class="update">\n        <div>Last Update:</div>\n        #{lastUpdate}\n      </div>\n      <div class="author"></div>\n    </div>\n    <div class="actions">\n      <h3>Actions</h3>\n      <ul></ul>\n    </div>\n  </div>\n</div>\n<div class="xbottom">\n  <div class="xb4"></div>\n  <div class="xb3"></div>\n  <div class="xb2"></div>\n  <div class="xb1"></div>\n</div>',tooltipOffset:150,tooltipClass:"object-tooltip",getTemplateOptions:function(){var A=this.options.object;var B=A;A.revision=A.revision||A.mtime;B.lastUpdate=A.revision?this.formatDate(A.revision):"";B.lastUpdate+=A.revisions?'<br/><a href="" class="aux_link object_revision">'+A.revisions+" revision"+(A.revisions>1?"s":"")+"</a>":"";return B},setupTooltip:function(){var B=this.options.object;this.tooltip.down("div.loading").hide();this.tooltip.down("div.content").show();this.tooltip.down("div.author").appendChild(this.formatAuthor(B.author));var C=this.tooltip.down("div.actions ul");PBwiki.ObjectBrowser.Actions.each(function(F){if(F.cmd!="preview"&&F.hasPermission&&F.hasPermission(this.options.tr,this.options.view)&&(!PBinfo.CurrentNetwork||PBinfo.CheckPermissions.level)){var D=F.href?F.href(this.options.tr,this.options.view):"";var E=new Element("a",{href:D,id:encodeURI(F.txt)+":"+this.options.view.getObjectInfo(this.options.tr).value}).update(F.txt);if(!D){E.observe("click",function(G){G.stop();document.fire("menu::hide");F.Execute(this.options.tr,this.options.view)}.bindAsEventListener(this))}C.appendChild(E.wrap("li"))}}.bind(this));var A=this.tooltip.down("a.object_revision");if(A){A.observe("click",function(D){D.stop();if(B.type=="Page"){window.location="/FindPage?RevisionsFor="+encodeURIComponent(B.value)}else{PBwiki.ObjectBrowser.selectView("View"+B.type+"Revision",B.value)}document.fire("menu::hide")}.bind(this))}},formatAuthor:function(B){var A=new Element("div");if(!B){return A}A.update("by "+Util.authorLinkFromObject(B));var C=A.down("a");if(C){C.observe("click",function(D){document.fire("menu::hide")}.bind(this))}return A},formatDate:function(B){var A=new Date(B*1000);return A.strftime("%B %e, %Y<br/>%I:%M:%S %p")}});
