/* Copyright (c) 2006-2009, Apple Inc. All rights reserved. */
/* Compressed JavaScript. Do not modify. */


/* editor.js */

var JSEditor=Class.create();JSEditor.prototype={mUseDesignMode:MozillaFixes.isGecko,mCleanupTimeout:10,mEditMode:false,mService:'wiki',mDefaultImageURL:'',mDefaultLinkURL:'',mButtons:[['header_button','lists_button','forecolor_button','createlink_button'],['image_button','attach_button','table_button','html_button']],mHeaderPopupOptions:['p','blockquote','pre','h1','h2','h3'],mHeaderTagNames:['h1','h2','h3','h4','h5','h6'],mBlockLevelTagNames:['blockquote','div','dl','fieldset','form','h1','h2','h3','h4','h5','h6','hr','ol','p','pre','table','ul'],mListsPopupOptions:['insertunorderedlist','insertorderedlist','-','outdent','indent'],mInlineStyles:['color_none','bold','italic','underline','forecolor_important','forecolor_emphasis','backcolor_highlight'],initialize:function(inElement){bindEventListeners(this,['handleToolbarMouseDown','handleEditButtonClick','handleHeaderStyleClick','handleInlineStyleClick','handleListsMenuItemClick','handleEditorFocus','handleEditorBlur','handleEditorKeypress','handleEditorMouseUp','handleEditorClick','handleFileDragOver','handleFileDrop','handlePaste','handleCancelClick','handleDocumentKeypress']);this.mStylesheets=new Array();this.mElement=$(inElement);this.mButtonFuncs=this.mButtons.inject([],function(arr,subarr){subarr.each(function(item){arr.push(item.replace(/_button/,''))});return arr;});Element.cleanWhitespace(this.mElement);var aStyleElms=document.getElementsByTagName('link');for(var i=0,c=aStyleElms.length;i<c;i++){var elm=aStyleElms[i];if(elm.getAttribute('rel')=='stylesheet'&&elm.getAttribute('media')&&elm.getAttribute('media').indexOf('screen')!=-1){this.mStylesheets.push(elm.getAttribute('href'));}}
if(arguments.length>1)Object.extend(this,arguments[1]);this.addHeaderAndStylePopups();this.addToolbarItems();observeEvents(this,d,{keypress:'handleDocumentKeypress'});},addHeaderAndStylePopups:function(){this.mHeaderPopup=popupManager().createPopupElement('toolbarpopup');this.mHeaderPopupOptions.each(function(blockType){var contents=Builder.node('span',{className:blockType},[Loc.wysiwyg_header_popup[blockType]||blockType]);var item=popupManager().itemWithTitle(this.mHeaderPopup,"\u00A0",null,this.handleHeaderStyleClick);replaceElementContents(item,contents);}.bind(this));this.mListsPopup=popupManager().createPopupElement('toolbarpopup');this.mListsPopupOptions.each(function(listPopupItem){if(listPopupItem=='-'){popupManager().divider(this.mListsPopup);return true;}
var sText='';switch(listPopupItem){case'indent':sText+='>';break;case'insertorderedlist':sText+='1.';break;case'insertunorderedlist':sText+='•';break;case'outdent':sText+='<';break;}
var oTitle=Builder.node('span',{className:'titleWithPrefix'},[Builder.node('span',{className:'prefix'},[sText]),Builder.node('span',{className:'title'},Loc.wysiwyg_lists_popup[listPopupItem])]);var item=popupManager().itemWithTitle(this.mListsPopup,oTitle,null,this.handleListsMenuItemClick);item.id='lists_popup_'+listPopupItem;}.bind(this));this.mStylePopup=popupManager().createPopupElement('toolbarpopup');this.mColorKey={};this.mStylePopup.style.visibility='hidden';Element.show(this.mStylePopup);var hasDrawnSeparator=false;this.mInlineStyles.each(function(s,i){if((!hasDrawnSeparator)&&s.match(/.+color_/)){hasDrawnSeparator=true;popupManager().divider(this.mStylePopup);}
var item=popupManager().itemWithTitle(this.mStylePopup,(Loc.wysiwyg_forecolor_popup[s]||s),null,this.handleInlineStyleClick);var exampleElm=Builder.node('span',{className:'forecolor_example custom_'+s},["T"]);insertAtBeginning(Builder.node('span',{className:'forecolor_example_container'},[exampleElm," "]),item);var styleKey=s.indexOf('backcolor')>=0?'backgroundColor':'color';this.mColorKey['custom_'+s]=[styleKey,Element.getStyle(exampleElm,styleKey)];}.bind(this));this.mStylePopup.style.visibility='';Element.hide(this.mStylePopup);},addToolbarItems:function(){var tb=wikitoolbar().mEditToolbar;this.mButtons.each(function(set){wikitoolbar().addButtonsToToolbar(tb,set,this.handleToolbarMouseDown);}.bind(this));var ul=wikitoolbar().addButtonsToToolbar(tb,['done_button','cancel_button']);ul.className='tbactions';this.mDoneButton=$('done_button');this.mStyleButton=$('forecolor_button');if(this.mStyleButton){a=this.mStyleButton.getElementsByTagName('a').item(0);replaceElementContents(a,'S'),a.id='forecolor_link';}
wikitoolbar().setToolbarButtonCallback(this.mDoneButton,this.handleEditButtonClick);wikitoolbar().setToolbarButtonCallback('cancel_button',this.handleCancelClick);return true;},resetToolbarState:function(){$A(this.mToolbarRow.childNodes).each(function(cell){delete cell.down('a').style.opacity;if(IEFixes.isIE)delete cell.down('a').style.filter;});},updateToolbarState:function(){if(this.mEditMode&&!IEFixes.isIE){this.mButtonFuncs.each(function(jsfunction){var cell=$(jsfunction+'_button');if(!cell)alert('cell not found');var enabled=false;switch(jsfunction){case'header':try{enabled=this.d.queryCommandEnabled('formatblock')&&this.mHasFocus;}
catch(e){enabled=false;}
break;case'image':case'table':case'attach':enabled=(!this.mHTMLEditField);break;case'html':enabled=true;break;case'createlink':enabled=true;break;case'lists':try{enabled=this.d.queryCommandEnabled('insertorderedlist')&&this.mHasFocus&&(!this.isFormattedBlockSelected());}
catch(e){enabled=false;}
break;default:try{enabled=this.d.queryCommandEnabled(jsfunction)&&this.mHasFocus&&(!this.isFormattedBlockSelected());}
catch(e){enabled=false;}}
var wasEnabled=(cell.className.match(/enabled/)!=null);if(enabled==wasEnabled)return true;var opacity=0.99999;var a=cell.down('a');if(enabled){Element.removeClassName(cell,'disabled');Element.addClassName(cell,'enabled');a.setAttribute('aria-disabled','');}else{Element.removeClassName(cell,'enabled');Element.addClassName(cell,'disabled');a.setAttribute('aria-disabled','true');opacity=0.3;}
a.style.opacity=opacity;if(IEFixes.isIE)a.style.filter='alpha(opacity:'+(opacity*100)+')';}.bind(this));}},showImageDialog:function(){var url=prompt('Image URL:',this.mDefaultImageURL);if(url)this.insertImage(url);},insertImage:function(inImageURL,inOptWidth,inOptHeight,inOptID){var str='<img src="'+inImageURL+'"';if(inOptWidth)str+=' width="'+inOptWidth+'"';if(inOptHeight)str+=' height="'+inOptHeight+'"';if(inOptID)str+=' id="'+inOptID+'"';str+=' alt="" />';this.insertHTML(str);},showTableDialog:function(){if(!this.mTableDialog)this.mTableDialog=new ModalTableDialogManager({mDocument:this.d});this.mTableDialog.drawDialog('tableDialog',null);},insertTable:function(inHTMLString,inEditedTable){if(inEditedTable){Element.addClassName(inEditedTable,'data');if(IEFixes.isIE){var sID=inEditedTable.id;var sClass=inEditedTable.className;var div=d.createElement('div');div.innerHTML='<table>'+inHTMLString+'</table>';inEditedTable.parentNode.insertBefore(div,inEditedTable);Element.remove(inEditedTable);inEditedTable=div.childNodes.item(0);inEditedTable.className=sClass;if(sID)inEditedTable.id=sID;promoteElementChildren(div);}else{inEditedTable.innerHTML=inHTMLString;}}else{this.insertHTML('<table class="data __useTableEditor">'+inHTMLString+'</table>');}
movableTable().collapseTablesAfterEditing();movableTable().expandTablesForEditing();},insertHTML:function(inHTML){if(IEFixes.isIE){if(this.d.selection.type=='None'){this.mEditorBody.innerHTML=this.mEditorBody.innerHTML+inHTML;}
else{var rng=this.d.selection.createRange();rng.pasteHTML(inHTML);}}
else{if(this.d.queryCommandEnabled('inserthtml')&&this.mSelectionManager.mSelection){this.d.execCommand('inserthtml',false,inHTML);}
else{if(this.mUseDesignMode)this.d.designMode='off';this.mEditorBody.firstChild.innerHTML+=inHTML;if(this.mUseDesignMode)this.d.designMode='on';movableTable().collapseTablesAfterEditing();movableTable().expandTablesForEditing();}}},removeExtraWhitespace:function(){$A(this.mEditorBody.getElementsByTagName('*')).each(function(elm){if(elm.nodeName.toLowerCase()!='pre'){$A(elm.childNodes).each(function(child){if(child.nodeType==3){child.nodeValue=child.nodeValue.replace(/[\s\r\n][\s\r\n]+/g,' ');}});}});},fixInlineStyles:function(){$A(this.mEditorBody.getElementsByTagName("*")).each(function(elm){if(elm.style&&elm.nodeName.toLowerCase()!='a'){if(elm.style.fontWeight=='bold')changeNodeName(elm,'b');else if(elm.style.fontStyle=='italic')changeNodeName(elm,'i');else if(elm.style.textDecoration=='underline')changeNodeName(elm,'u');else if(elm.style.fontWeight=='normal')Element.addClassName(elm,'wiki_unbold');else if(elm.style.fontStyle=='normal')Element.addClassName(elm,'wiki_unitalic');else if(elm.style.textDecoration=='none')Element.addClassName(elm,'wiki_ununderline');}});if(IEFixes.isIE){$$('font').each(function(elm){var tempContainer=Builder.node('span');elm.parentNode.insertBefore(tempContainer,elm);tempContainer.innerHTML=elm.outerHTML.replace('FONT','SPAN');elm.parentNode.removeChild(elm);promoteElementChildren(tempContainer);});}
$$('.wiki_unbold').each(function(elm){Element.unwrap(elm,'b',function(){return Builder.node('b')});});$$('.wiki_unitalic').each(function(elm){Element.unwrap(elm,'i',function(){return Builder.node('i')});});$$('.wiki_ununderline').each(function(elm){Element.unwrap(elm,'u',function(){return Builder.node('u')});});$A(this.mEditorBody.getElementsByTagName('span')).each(function(elm){if(Element.hasClassName(elm,'Apple-style-span')){Element.removeClassName('Apple-style-span');if(!elm.className.match(/\S/))promoteElementChildren(elm);}});$A(this.mEditorBody.getElementsByTagName('br')).each(function(elm){Element.removeClassName(elm,'webkit-block-placeholder');});},exchangeStylesForClasses:function(){$H(this.mColorKey).each(function(c){var editorBodyTags=$A(this.mEditorBody.getElementsByTagName("*"));for(var elmIdx=0,count=editorBodyTags.length;elmIdx<count;elmIdx++){var elm=editorBodyTags[elmIdx];if(IEFixes.isIE&&elm.tagName.toLowerCase()=='font'){if(elm.getAttribute('color')&&elm.style&&!elm.style.color){elm.style.color=elm.getAttribute('color');elm.setAttribute('color','');}}
if(elm.style&&(elm.style[c.value[0]]&&elm.style[c.value[0]].toLowerCase()==c.value[1].toLowerCase())){elm.style[c.value[0]]='';if(c.key!='custom_color_none')Element.addClassName(elm,c.key);}}}.bind(this));this.fixInlineStyles();},exchangeClassesForStyles:function(){$H(this.mColorKey).each(function(c){var editorBodyTags=this.mEditorBody.getElementsByTagName("*");for(var elmIdx=0;elmIdx<editorBodyTags.length;elmIdx++){var elm=editorBodyTags.item(elmIdx);if(Element.hasClassName(elm,c.key)){elm.style[c.value[0]]=c.value[1];Element.removeClassName(elm,c.key);}}}.bind(this));},addLinkTargets:function(inOptElement){var bodyElm=(inOptElement?$(inOptElement):this.mEditorBody);$A(bodyElm.getElementsByTagName('a')).each(function(elm){if(!elm.getAttribute('target'))elm.setAttribute('target','wiki_link_preview');});},removeLinkTargets:function(inOptElement){var bodyElm=(inOptElement?$(inOptElement):this.mEditorBody);$A(bodyElm.getElementsByTagName('a')).each(function(elm){if(elm.getAttribute('target')=='wiki_link_preview')elm.removeAttribute('target');});},fixServerRelativePaths:function(){var host=window.location.toString().match(/^[A-Za-z]+:\/{2,3}[^\/]+(:\d+)?\//);if(!host)return;var fixElm=function(elm){var attrName=(elm.nodeName.toLowerCase()=='a'?'href':'src');var attrVal=elm.getAttribute(attrName);if(attrVal&&attrVal.indexOf(host[0])==0){elm.setAttribute(attrName,attrVal.replace(/^[A-Za-z]+:\/{2,3}[^\/]+(:\d+)?\//,'/'));}}
$A(this.mEditorBody.getElementsByTagName('a')).each(fixElm);$A(this.mEditorBody.getElementsByTagName('img')).each(fixElm);},removeMeaninglessMarkup:function(){var isWhitespaceNode=function(node){return node.nodeType==3&&!/\S/.test(node.nodeValue);}
var isBogusDivChild=function(node){return $A(['br','div']).indexOf(node.nodeName.toLowerCase())>=0;}
var headers=$('editable_content').getElementsBySelector(this.mHeaderTagNames.toString());for(var headerIndex=0;headerIndex<headers.length;headerIndex++){var header=headers[headerIndex];var children=header.childNodes;var zombieHeader=true;for(var childIndex=0;childIndex<children.length;childIndex++){var child=children[childIndex];if((this.mBlockLevelTagNames.include(child.nodeName.toLowerCase())||isWhitespaceNode(child))==false){zombieHeader=false;break;}}
if(zombieHeader){promoteElementChildren(header);}}
var pageDivs=this.mEditorBody.getElementsByTagName('div');for(var divIdx=0;divIdx<pageDivs.length;divIdx++){var div=pageDivs.item(divIdx);if(div.className||div.id)return;if(div.childNodes.length==0){div.remove();return;}
if(div.childNodes.length>3)return;var node=div.childNodes.item(0);if(isWhitespaceNode(node)){if(!node.nextSibling){node.remove();return;}
node=node.nextSibling;}
if(isBogusDivChild(node)){if(node.nextSibling&&!isWhitespaceNode(node.nextSibling))return;promoteElementChildren(div);}}},getHTML:function(){if(this.mHTMLEditField)this.mEditorBody.innerHTML=$F(this.mHTMLEditField);this.fixServerRelativePaths();this.removeMeaninglessMarkup();this.exchangeStylesForClasses();this.removeLinkTargets(this.mEditorDiv);movableTable().collapseTablesAfterEditing(this.mEditorBody);this.removeExtraWhitespace();return this.mEditorBody.innerHTML;},setHTML:function(inHTML){if(this.mHTMLEditField){this.mHTMLEditField.value=inHTML;}
else{this.mEditorBody.innerHTML=inHTML;this.exchangeClassesForStyles();this.addLinkTargets();}},showLinkDialog:function(){var url=prompt('URL:',this.mDefaultLinkURL);if(url)this.createLink(url);},createLink:function(inLinkURL,inOptTitle){try{this.mSelectionManager.retrieve()}catch(e){};var command=((inLinkURL&&(inLinkURL!=''))?'createlink':'unlink');if(this.mSelectionManager.isEmptySelection()){var linkUrlMatch=inLinkURL.match(/\/([^\/])$/);var linkTitle=inOptTitle||(linkUrlMatch?linkUrlMatch[1]:inLinkURL);this.insertHTML('<a href="'+inLinkURL+'">'+linkTitle.escapeHTML()+'</a>');}
else{this.d.execCommand(command,false,inLinkURL);}
this.addLinkTargets();},showAttachDialog:function(){},getUpdateDictionary:function(){return{content:this.cleanForSaving(this.getHTML())};},saveDocument:function(){dialogManager().showProgressMessage('save_page_dialog_progress');var updateDictionary=this.getUpdateDictionary();this.mSaveRequest=server()[this.mService].updateEntry(this.gotSaveDocumentResponse.bind(this),this.mPageUID,updateDictionary).makeRequired();},gotSaveDocumentResponse:function(inRequestObj,inResponseObj){dialogManager().hide();notifier().print(Loc.document_saved);if(this.mEditorDiv.nodeName.toLowerCase()=='div'){replaceElementContents(this.mEditorDiv,inResponseObj.content,true);}
this.cleanElementAfterEditing(this.mEditorDiv,inResponseObj);publisher().publish('DOCUMENT_SAVED',this);},cleanElementForEditing:function(inElement){},cleanElementAfterEditing:function(inElement,inResponseDict){},getSelection:function(){return(this.mEditorWindow.getSelection?this.mEditorWindow.getSelection():document.selection);},isFormattedBlockSelected:function(){var sel=this.getSelection();for(var i=0;i<sel.rangeCount;i++){var rng=sel.getRangeAt(i);var found=this.mHeaderPopupOptions.detect(function(h){var elm=rng.commonAncestorContainer;if(h!='p'){if(elm.getElementsByTagName&&elm.getElementsByTagName(h).length>0)return true;while(elm.parentNode){if(elm.nodeName.toLowerCase()==h.toLowerCase())return true;elm=elm.parentNode;}}
return false;});if(found)return true;}
return false;},switchToEditor:function(){if(SafariFixes.isTigerSafari)alert(Loc.edit_unsupported_error);wikitoolbar().expandToolbar();var afterFinish=function(){this.updateToolbarState();}.bind(this);var oldDiv=$('editable_content');this.addLinkTargets(oldDiv);this.cleanElementForEditing(oldDiv);if(oldDiv.childNodes.length==0)replaceElementContents(oldDiv,'<br>',true);if(this.mUseDesignMode){var loc=(d.getElementsByTagName('base').length>0)?d.getElementsByTagName('base').item(0).href:location.href;var ssLinks=this.mStylesheets.inject('',function(str,ss){return str+'<link media="screen,projection" rel="stylesheet" href="'+ss+'">'});var contents=oldDiv.innerHTML;this.mEditorFrame=Builder.node('iframe',{id:'editable_content',name:'editable_content',title:Loc.editorFrameTitle,style:'visibility:hidden;height:200px;width:99%'});insertAfter(this.mEditorFrame,oldDiv);this.mEditorWindow=this.mEditorFrame.contentWindow;this.d=this.mEditorWindow.document;this.d.write('<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><html class="editorIframe" lang="'+Loc.bodyLangAttribute+'"><head><base href="'+loc+'" /><meta http-equiv="Content-Type" content="text/html;charset="utf-8" />'+ssLinks+'</head><body>'+contents+'</body></html>');var setupEditorBody=function(){if(this.d&&this.d.body){this.mEditorBody=this.d.body;this.mOriginalText=this.mEditorBody.innerHTML;movableTable().expandTablesForEditing(this.mEditorBody);this.exchangeClassesForStyles();if(this.setupEditor)this.setupEditor(this.mEditorBody);this.mEditorWindow.focus();var clickCallback=function(){return true;}
this.d.onmousedown=clickCallback;this.mEditorBody.onmousedown=clickCallback;this.mEditorFrame.onmousedown=clickCallback;}
else{setTimeout(setupEditorBody.bind(this),100);}}
afterFinish=function(){this.updateToolbarState();this.mEditorFrame.style.visibility='visible';Element.remove(oldDiv);this.mViewSprings=new ViewSprings(this.mEditorFrame,null,this.mSidebarElement);this.mViewSprings.boing();setTimeout(setupEditorBody.bind(this),100);}.bind(this);this.d.close();this.d.designMode='on';}
else{Object.extend(oldDiv,{ondragover:this.handleFileDragOver,ondrop:this.handleFileDrop,onpaste:this.handlePaste});this.mEditorWindow=window;this.d=d;this.mEditorFrame=oldDiv;this.mEditorBody=oldDiv;afterFinish=function(){this.updateToolbarState();Element.addClassName(oldDiv,'contenteditable');this.exchangeClassesForStyles();oldDiv.contentEditable=true;this.mOriginalText=this.mEditorBody.innerHTML;movableTable().expandTablesForEditing(this.mEditorBody);this.mViewSprings=new ViewSprings(this.mEditorFrame,null,this.mSidebarElement);this.mViewSprings.boing();if(this.setupEditor)this.setupEditor(this.mEditorBody);}.bind(this);}
this.mSelectionManager=new JSSelectionManager({mDocument:this.d,mWindow:this.mEditorWindow,mRetrieveCallback:this.updateToolbarState.bind(this)});var element=this.mUseDesignMode?this.d:this.d.getElementById('editable_content');observeEvents(this,element,{focus:'handleEditorFocus',blur:'handleEditorBlur',mousedown:'handleEditorClick',mouseup:'handleEditorMouseUp',keypress:'handleEditorKeypress'});this.mPageUID=CollabUID.sharedInstance().mValue;this.mHasFocus=false;afterFinish();},switchToDisplay:function(inOptRevert){if(this.mHTMLEditField)this.toggleHTMLMode();wikitoolbar().collapseToolbar();var element=this.mUseDesignMode?this.d:this.d.getElementById('editable_content');stopObservingEvents(this,element,{focus:'handleEditorFocus',blur:'handleEditorBlur',mousedown:'handleEditorClick',mouseup:'handleEditorMouseUp'});if(this.mViewSprings){this.mViewSprings.destroy();delete this.mViewSprings;}
var afterFinish=function(){};if(this.mUseDesignMode){var content=this.getHTML();this.d.designMode='off';delete this.mSelectionManager;delete this.mTableDialog;if($('tableDialog'))Element.remove($('tableDialog'));var div=d.createElement('div');div.id='editable_content';replaceElementContents(div,(inOptRevert?this.mOriginalText:content),true);var iframe=this.mEditorFrame;insertAfter(div,iframe);Element.remove(iframe);delete this.mEditorFrame;delete this.d;this.mEditorDiv=div;}
else{if(inOptRevert)this.setHTML(this.mOriginalText);this.mEditorFrame.style.height='';Element.removeClassName(this.mEditorFrame,'contenteditable');blur();this.mEditorFrame.contentEditable=false;var div=d.createElement('div');this.mEditorFrame.parentNode.insertBefore(div,this.mEditorFrame);Element.remove(this.mEditorFrame);div.parentNode.insertBefore(this.mEditorFrame,div);Element.remove(div);this.mEditorDiv=this.mEditorFrame;delete this.mEditorFrame;delete this.d;}},hideComments:function(){if($('comments'))Element.hide($('comments'));},showComments:function(){if($('comments'))Element.show($('comments'));},cleanForSaving:function(inString){inString=inString.replace(/&nbsp;/gi,' ').replace(/ /g,' ');inString=inString.replace(/<([^<>]+)href="wiki\//g,'<$1href=\"/'+uid().mBasePath+'/wiki/');inString=inString.replace(/<pre>[\s\t\n\r]*<\/pre>/gi,'');inString=inString.replace(/<([\/]*)li([^<>]*)>[\s\t\n\r]*<br[^<>]*>/gi,'<$1li$2>').replace(/<br[^<>]*>[\s\t\n\r]*<([\/]*)li([^<>]*)>/gi,'<$1li$2>');return inString;},toggleEditMode:function(inOptBypassSave){if(this.mHTMLEditField){var content=$F(this.mHTMLEditField);Element.remove(this.mHTMLEditField);this.mHTMLEditField=null;this.setHTML(content);Element.show(this.mEditorFrame);}
this.mEditMode=!this.mEditMode;if(this.mEffect)this.mEffect.cancel();if(this.mEditMode){this.hideComments();this.switchToEditor();}else{this.showComments();if(!inOptBypassSave){try{this.saveDocument()}catch(e){}}
this.switchToDisplay(inOptBypassSave);if(inOptBypassSave){this.cleanElementAfterEditing(this.mElement.lastChild);this.removeLinkTargets(this.mElement.lastChild);}}},toggleHTMLMode:function(inOptRequestObj,inOptResponseObj){if(inOptRequestObj&&inOptResponseObj&&(inOptRequestObj==this.mFilterRequest)){delete this.mFilterRequest;var content=inOptResponseObj.filteredText;if(this.mHTMLEditField){Element.remove(this.mHTMLEditField);this.mHTMLEditField=null;this.setHTML(content);Element.show(this.mEditorFrame);movableTable().expandTablesForEditing();}
else{if(IEFixes.isIE)content=content.replace(/\n/g,'\r');this.mHTMLEditField=Builder.node('textarea',{id:'editable_raw_html'},[content]);this.mEditorFrame.parentNode.insertBefore(this.mHTMLEditField,this.mEditorFrame);Position.clone(this.mEditorFrame,this.mHTMLEditField,{setLeft:false,setTop:false,setWidth:false});Element.hide(this.mEditorFrame);this.mHasFocus=false;}
this.updateToolbarState();}
else{this.mFilterRequest=server().wiki.filterText(this.toggleHTMLMode.bind(this),this.getHTML());}},handleToolbarMouseDown:function(inEvent){var elm=Event.findElement(inEvent,'li')
Event.stop(inEvent);this.mSelectionManager.store();var jsfunction=elm.id.replace(/_button/,'');switch(jsfunction){case'header':if(this.mHasFocus||IEFixes.isIE){popupManager().show(elm,this.mHeaderPopup,[IEFixes.isIE7?-767:0,0]);}
break;case'forecolor':if(this.mHasFocus||IEFixes.isIE){popupManager().show(elm,this.mStylePopup,[IEFixes.isIE7?-767:0,0]);}
break;case'image':this.showImageDialog();break;case'table':this.showTableDialog();break;case'createlink':this.showLinkDialog();break;case'attach':this.showAttachDialog();break;case'html':this.toggleHTMLMode();break;case'lists':if(this.mHasFocus||IEFixes.isIE){popupManager().show(elm,this.mListsPopup,[IEFixes.isIE7?-767:0,0]);}
break;default:if(this.mHasFocus&&(!this.isFormattedBlockSelected()))this.d.execCommand(jsfunction,false,null);}
return false;},handleEditButtonClick:function(inEvent){this.toggleEditMode();},handleHeaderStyleClick:function(inEvent){popupManager().hide();var elm=Event.findElement(inEvent,'a');try{wikiEditor().mSelectionManager.retrieve()}catch(e){};var blockType=elm.firstChild.className;if(IEFixes.isIE)blockType='<'+blockType+'>';if(elm&&elm.firstChild){this.d.execCommand('formatblock',false,(IEFixes.isIE?'<p>':'p'));this.d.execCommand('outdent',false,null);this.d.execCommand('formatblock',false,blockType);}
this.mSelectionManager.removeAppleStyleSpan();return false;},handleInlineStyleClick:function(inEvent){var elm=Event.findElement(inEvent,'a').down().down();popupManager().hide();try{wikiEditor().mSelectionManager.retrieve()}catch(e){};if(elm.hasClassName('custom_color_none')){if(this.mSelectionManager.isEmptySelection){if(this.d.queryCommandState('bold'))this.d.execCommand('bold',false,null);if(this.d.queryCommandState('italic'))this.d.execCommand('italic',false,null);if(this.d.queryCommandState('underline'))this.d.execCommand('underline',false,null);this.d.execCommand('foreColor',false,'inherit');this.d.execCommand('backColor',false,'inherit');}
this.d.execCommand('removeformat',false,null);return false;}
var match=elm.className.match(/custom_(\S*)color_\S+/);if((!match)||(!this.mColorKey[match[0]])){match=elm.className.match(/custom_(\S*)/);if(match)this.d.execCommand(match[1],false,null);this.fixInlineStyles();return false;}
if(!IEFixes.isIE)this.d.execCommand('styleWithCSS',false,true);var command=(match[1]=='back')?'BackColor':'ForeColor';var color=this.mColorKey[match[0]][1];if(IEFixes.isIE)color=color.replace(/^#/,'');this.d.execCommand(command,false,color);if(!IEFixes.isIE)this.d.execCommand('styleWithCSS',false,false);return false;},handleListsMenuItemClick:function(inEvent){popupManager().hide();var jsfunction=Event.findElement(inEvent,'a').id.match(/lists_popup_(.+)$/)[1];try{this.mSelectionManager.retrieve()}catch(e){};this.d.execCommand(jsfunction,false,null);return false;},handleEditorFocus:function(inEvent){this.mHasFocus=true;this.updateToolbarState();},handleEditorMouseUp:function(inEvent){this.handleEditorFocus();if(!MozillaFixes.isGecko)movableTable().checkEditor(this.d);this.checkEventForTable(inEvent);},handleEditorBlur:function(inEvent){if(MozillaFixes.isCamino)return true;this.mHasFocus=false;this.updateToolbarState();},handleEditorKeypress:function(inEvent){if((inEvent.keyCode==Event.KEY_RETURN)){var callback=function(){var selection=this.getSelection();var currentNode=null;if(selection&&selection.rangeCount>0){currentNode=selection.getRangeAt(0).startContainer;}
else if(selection&&selection.anchorNode){currentNode=selection.anchorNode;}
while(currentNode){if(currentNode.nodeName&&currentNode.nodeName.match(/[Hh]\d/)){if(currentNode.innerText&&(!currentNode.innerText.match(/\S/)))this.d.execCommand('formatblock',false,'p');break;}
currentNode=currentNode.parentNode;}};setTimeout(callback.bind(this),this.mCleanupTimeout);}
else if(SafariFixes.isWebKit&&(inEvent.keyCode==32)){var sel=window.getSelection();var pnode=sel.anchorNode.parentNode;if(pnode.nodeName.toLowerCase()=='a'&&sel.anchorNode.nodeValue&&sel.anchorOffset==sel.anchorNode.nodeValue.length){Event.stop(inEvent);var textNode=this.d.createTextNode("\u00A0");insertAfter(textNode,pnode);var styleSpan=pnode.up('span.Apple-style-span');if(styleSpan&&styleSpan.style.textDecoration=='underline')promoteElementChildren(styleSpan);sel.setBaseAndExtent(textNode,1,textNode,1);}}
this.updateToolbarState();if(this.mUseDesignMode)this.handleDocumentKeypress(inEvent);},handleEditorClick:function(inEvent){this.handleEditorFocus(inEvent);},handleFileDragOver:function(inEvent){if(inEvent&&inEvent.dataTransfer&&inEvent.dataTransfer.types&&$A(inEvent.dataTransfer.types).indexOf('text/uri-list')>0&&inEvent.srcElement&&inEvent.srcElement.src&&(inEvent.srcElement.src.match(/^file:/i)||inEvent.srcElement.src.match(/^webkit-fake-url:/i)))return false;return true;},handleFileDrop:function(inEvent){alert(Loc.image_dragdrop_error)
return true;},handlePaste:function(inEvent){setTimeout(this.removeMeaninglessMarkup.bind(this),100);var lookForLocalImages=function(){var foundLocalImage=false;$A(this.mEditorBody.getElementsByTagName('img')).each(function(img){if(!img.src)return true;if(img.src.match(/^file:/i)||img.src.match(/^webkit-fake-url:/i)){foundLocalImage=true;$(img).remove();}});if(foundLocalImage)alert(Loc.image_dragdrop_error);}
setTimeout(lookForLocalImages.bind(this),100);},handleCancelClick:function(inEvent){this.toggleEditMode(true);return false;},handleDocumentKeypress:function(inEvent){},checkEventForTable:function(inEvent,inOptTable){var table='';if(inOptTable){table=inOptTable;}else{var elm=Event.element(inEvent);if(!elm.ancestors)return;var tagName='table';table=Event.findElement(inEvent,tagName);if(inEvent.type.indexOf('key')==0){if(this.getSelection().focusNode&&this.getSelection().focusNode.parentNode){elm=this.getSelection().focusNode.parentNode;var parent=elm;while(parent.parentNode&&(!parent.tagName||(parent.tagName.toLowerCase()!=tagName.toLowerCase()))){parent=parent.parentNode;}
table=parent;}}}
if(!table||((SafariFixes.isWebKit||IEFixes.isIE)&&!Element.childOf(table,$('editable_content'))))return;if($('tableDialog'))Element.remove('tableDialog');if(typeof table.tagName!='undefined'&&table.tagName.toLowerCase()=='table'){if(table){if(Element.hasClassName(table,'__doNotUseTableEditor')){return;}else if(!Element.hasClassName(table,'__useTableEditor')){if(!window.confirm(Loc.table_dialog_use_editor)){Element.addClassName(table,'__doNotUseTableEditor');return;}else{Element.addClassName(table,'__useTableEditor');}}}
if(!this.mTableDialog)this.mTableDialog=new ModalTableDialogManager({mDocument:this.d});this.mTableDialog.mCurrentTable=table||null;this.mTableDialog.drawDialog('tableDialog',table);Event.stop(inEvent);}else{if(typeof this.mTableDialog!='undefined')delete this.mTableDialog;if($('tableDialog'))Element.remove($('tableDialog'));}}}
var JSSelectionManager=Class.create();JSSelectionManager.prototype={initialize:function(){this.mDocument=document;this.mWindow=window;if(arguments.length>0)Object.extend(this,arguments[0]);},store:function(){if(this.mWindow.getSelection){var sel=this.mWindow.getSelection();if(sel)this.mSelection={anchorNode:sel.anchorNode,anchorOffset:sel.anchorOffset,focusNode:sel.focusNode,focusOffset:sel.focusOffset};if(!sel||!this.mSelection.anchorNode)this.mSelection=null;}
else if(this.mDocument.selection&&this.mDocument.selection.createRange){this.mSelection=this.mDocument.selection.createRange();}
else{this.mSelection=null;}},getSelectedString:function(){var str='';if(this.mWindow.getSelection&&this.mWindow.getSelection.toString){str=this.mWindow.getSelection().toString()||'';}
else if(this.mDocument.selection&&this.mDocument.selection.createRange){str=this.mDocument.selection.createRange().text.replace(/^\s+/,'').replace(/\s+$/,'');}
return str;},retrieve:function(){if(this.mSelection){if(this.mWindow.getSelection){var sel=this.mWindow.getSelection();if(sel.setBaseAndExtent){sel.setBaseAndExtent(this.mSelection.anchorNode,this.mSelection.anchorOffset,this.mSelection.focusNode,this.mSelection.focusOffset);}
else if(this.mDocument.createRange){var rng=this.mDocument.createRange();rng.setStart(this.mSelection.anchorNode,this.mSelection.anchorOffset);rng.setEnd(this.mSelection.focusNode,this.mSelection.focusOffset);sel.removeAllRanges();sel.addRange(rng);this.mWindow.focus();}}
else if(this.mDocument.selection&&this.mDocument.selection.createRange){this.mSelection.select();}
if(this.mRetrieveCallback)this.mRetrieveCallback();}},moveCursorToBeginning:function(){var elm=this.mDocument;var wikiEntryDivs=document.getElementsByClassName('wiki_entry',this.mDocument);if(wikiEntryDivs.length>0)elm=wikiEntryDivs[0];var sel=null;if(this.mWindow.getSelection)sel=this.mWindow.getSelection();if(sel){if(sel.setBaseAndExtent){sel.setBaseAndExtent(elm,0,elm,0);}
else if(sel.selectAllChildren){sel.selectAllChildren(elm);sel.collapseToStart();}}
else if(this.mDocument.selection&&this.mDocument.selection.createRange){var rng=this.mDocument.body.createTextRange();rng.moveToElementText(elm);rng.select();rng.moveEnd('character',rng.text.length*(-1));rng.select();}},isEmptySelection:function(){var sel=null;if(this.mWindow.getSelection)sel=this.mWindow.getSelection();if(sel){return(sel.anchorNode==sel.focusNode&&sel.anchorOffset==sel.focusOffset);}
else if(this.mDocument.selection&&this.mDocument.selection.type){return this.mDocument.selection.type=='None';}
return true;},selectElementChildren:function(inElement){var elm=$(inElement);if(!elm)return false;var sel=null;if(this.mWindow.getSelection)sel=this.mWindow.getSelection();if(sel){if(sel.setBaseAndExtent){sel.setBaseAndExtent(elm,0,elm,Math.max(elm.innerText.length-1,0));}
else if(sel.selectAllChildren){sel.selectAllChildren(elm);}}
else if(this.mDocument.selection&&this.mDocument.body.createTextRange){var rng=this.mDocument.body.createTextRange();rng.moveToElementText(elm);rng.select();}},removeAppleStyleSpan:function(){if(!SafariFixes.isWebKit)return true;var sel=this.mWindow.getSelection();if(sel&&sel.anchorNode&&sel.anchorNode.parentNode){var span=$(sel.anchorNode.parentNode).down('span.Apple-style-span');if(span){promoteElementChildren(span);this.selectElementChildren(sel.anchorNode.parentNode);}}}}
if(window.loaded)loaded('editor.js');

/* wiki.js */

function documentShouldUnload(){if(($('wysiwyg_container')&&window.wikiEditor&&wikiEditor().mEditMode)||server().isSavingSomething()){return Loc.unloadConfirm;}}
function reportFrameError(){if(UploadProgressPlaceholder.allPlaceholders)$H(UploadProgressPlaceholder.allPlaceholders).each(function(ph){ph.value.cancel();});dialogManager().hide();alert(Loc.attach_upload_error);}
var CommentManager=Class.createWithSharedInstance('commentManager',true);CommentManager.commentSortDirectionASC='ASC';CommentManager.commentSortDirectionDESC='DESC';CommentManager.prototype={initialize:function(){if(Element.hasClassName(d.body,'grouphome'))return invalidate;this.isModerationPage=($('moderation')?true:false);this.mComments=$('moderation')||$('comments');if(!this.mComments)return invalidate;if(IEFixes.isIE)this.mComments.style.zoom='1';this.mCommentsList=this.mComments.down('div');this.mCommentsHeader=this.mComments.down('h3');if(!this.mCommentsList)return invalidate;this.commentSortDirection=getMetaTagValue('apple_collab_comment_sort_direction');this.allowComments=(!this.isModerationPage&&getMetaTagValue('apple_allowComments')=="True");this.allowUnauthenticatedComments=(getMetaTagValue('apple_allowUnauthenticatedComments')=="True");this.allowUnmoderatedComments=(getMetaTagValue('apple_allowUnmoderatedComments')=="True");this.allowUnmoderatedUnauthenticatedComments=(getMetaTagValue('apple_allowUnmoderatedUnauthenticatedComments')=="True");publisher().subscribe(this.handleAuthenticated.bind(this),'AUTHENTICATED');bindEventListeners(this,['handleDeleteComment','handleApproveComment','handleActivateComment','handleDeactivateComment']);if(!this.isModerationPage){bindEventListeners(this,['handleSubmit','handleButtonClick','handleCancelClick','handleKeyPress','showForm','verifyShowForm']);this.drawShowCommentDiv();}
this.enableDeleteLinks();this.enableApproveLinks();},setActiveComment:function(inEvent){var target=inEvent.target||inEvent.srcElement;var href=target.getAttribute('href');var iIndex=href.indexOf('/groups/');if(iIndex==-1)iIndex=href.indexOf('/users/');this.currentCommentUID=href.substring(iIndex+1,href.lastIndexOf('/'));this.htmlCommentUID=this.currentCommentUID.replace(/\//g,'_');this.comment=$('comment_'+this.htmlCommentUID);},enableDeleteLinks:function(){var elms=d.getElementsByClassName('bvr-deletecomment');for(var i=0,c=elms.length;i<c;i++){var elm=elms[i];Event.observe(elm,'click',this.handleDeleteComment,true);Event.observe(elm,'mouseover',this.handleActivateComment,true);Event.observe(elm,'mouseout',this.handleDeactivateComment,true);Event.observe(elm,'focus',this.handleActivateComment,true);Event.observe(elm,'blur',this.handleDeactivateComment,true);}},enableApproveLinks:function(){var elms=d.getElementsByClassName('bvr-approvecomment');for(var i=0,c=elms.length;i<c;i++){var elm=elms[i];Event.observe(elm,'click',this.handleApproveComment,true);Event.observe(elm,'mouseover',this.handleActivateComment,true);Event.observe(elm,'mouseout',this.handleDeactivateComment,true);Event.observe(elm,'focus',this.handleActivateComment,true);Event.observe(elm,'blur',this.handleDeactivateComment,true);}},handleActivateComment:function(inEvent){Event.stop(inEvent);this.setActiveComment(inEvent);Element.addClassName(this.comment,'activecomment');},handleAuthenticated:function(){dialogManager().showProgressMessage('settings_getting_progress');Element.reload(this.mCommentsList,this.handleCommentsUpdated.bind(this));},handleCommentsUpdated:function(){this.mCommentsList.show();this.enableDeleteLinks();this.enableApproveLinks();dialogManager().hide();},handleDeactivateComment:function(inEvent){Event.stop(inEvent);if(!this.comment)this.setActiveComment(inEvent);Element.removeClassName(this.comment,'activecomment');},handleDeleteComment:function(inEvent){Event.stop(inEvent);this.setActiveComment(inEvent);if(confirm(Loc.comment_delete_confirm_pre+this.comment.getElementsByTagName('span').item(0).getAttribute('title')+Loc.comment_delete_confirm_post)){this.deleteComment();}},handleApproveComment:function(inEvent){Event.stop(inEvent);if(!this.comment)this.setActiveComment(inEvent);this.approveComment();},deleteComment:function(inEvent){dialogManager().showProgressMessage('comment_delete_progress');server().discussion.deleteDiscussionEntry(this.handleDeleteEntryResponse.bind(this),this.currentCommentUID);},approveComment:function(inEvent){dialogManager().showProgressMessage('comment_approve_progress');server().discussion.approveDiscussionEntry(this.handleApproveEntryResponse.bind(this),this.currentCommentUID);},handleDeleteEntryResponse:function(inRequestObj,inResponseObj){dialogManager().hide();notifier().print('comment_deleted_message');publisher().publish('DID_REMOVE_COMMENT',this,{uid:this.htmlCommentUID});Effect.BlindUp($('comment_'+this.htmlCommentUID),{duration:0.4,afterFinish:afterFinishDelete});},handleApproveEntryResponse:function(inRequestObj,inResponseObj){dialogManager().hide();notifier().print('comment_approved_message');publisher().publish('DID_MODERATE_COMMENT',this,{uid:this.htmlCommentUID});var commentID='comment_'+this.htmlCommentUID;var comment=$(commentID);if(!comment)return;Element.removeClassName(comment,'unmoderatedcomment');var moderatedMessage=$$('#'+commentID+' p.unmoderatedcomment');if(moderatedMessage.length)Effect.BlindUp(moderatedMessage[0],{duration:0.2,afterFinish:afterFinishDelete});var approveLink=$$('#'+commentID+' a.bvr-approvecomment');if(approveLink.length)Element.hide(approveLink[0]);if(this.isModerationPage)Effect.BlindUp(comment,{duration:0.4,afterFinish:afterFinishDelete});},drawShowCommentDiv:function(){if(!this.allowComments)return;var sSubmit=Loc.comment_form_show;this.mShowCommentFormLink=Builder.node('a',{type:'link',href:'#',className:'showcommentformlink',title:sSubmit,'role':'button'},[Builder.node('span',{className:'icon'}),Builder.node('span',{className:'text'},[sSubmit])]);this.mShowCommentFormDiv=Builder.node('div',{id:'showcomments',className:'showcomments',style:'display:none;'},[this.mShowCommentFormLink]);Event.observe(this.mShowCommentFormLink,'click',this.verifyShowForm);if(this.commentSortDirection==CommentManager.commentSortDirectionDESC){this.mCommentsHeader.insert(this.mShowCommentFormDiv);}else{this.mComments.insert(this.mShowCommentFormDiv);}
if(IEFixes.isIE){Element.show(this.mShowCommentFormDiv);this.mShowCommentFormDiv.style.zoom='1';}else{Effect.BlindDown(this.mShowCommentFormDiv,{duration:0.2,afterFinish:afterFinishShow});}},verifyShowForm:function(inEvent){Event.stop(inEvent);if(!this.mForm)this.drawCommentForm();if(this.allowUnauthenticatedComments){if(d.cookie.match(/[^\.]sessionID/)&&!d.cookie.match(/[^\.]sessionID=unauthenticated/))this.handleLoggedInForCommenting();this.showForm();}else{serverui().ensureLogin(this.showForm,'read',false,(d.cookie.match(/[^\.]sessionID=unauthenticated/)));}},showForm:function(){if(this.commentSortDirection==CommentManager.commentSortDirectionDESC){this.mShowCommentFormDiv.hide();}else{this.mShowCommentFormDiv.fade({duration:0.15,afterFinish:afterFinishHide});}
this.mComments.addClassName('editing');this.mForm.blindDown({duration:0.25,afterFinish:function(effect){afterFinishShow(effect);this.focusForm();}.bind(this)});if(this.commentSortDirection==CommentManager.commentSortDirectionASC){setTimeout(this.scrollToForm.bind(this),100);}},hideForm:function(){this.mForm.blindUp({duration:0.2,afterFinish:function(effect){afterFinishHide(effect);this.mComments.removeClassName('editing');this.mShowCommentFormDiv.appear({duration:0.15,afterFinish:afterFinishShow});}.bind(this)});},scrollToForm:function(){Effect.ScrollTo(this.mForm,{duration:0.2});},handleEnsureLoginForCommenting:function(inEvent){Event.stop(inEvent);serverui().ensureLogin(this.handleLoggedInForCommenting.bind(this),'read',false,true);},handleLoggedInForCommenting:function(){this.mFocusField='comment_form_body';this.mTimer=setTimeout(this.focusForm.bind(this),250);Element.hide($('comment_form_author_label'));this.hideModeratedMessage();},hideModeratedMessage:function(){this.moderated=false;if(!this.allowUnmoderatedUnauthenticatedComments&&!serverui().userIsAuthenticated())this.moderated=true;if(!this.allowUnmoderatedComments&&serverui().userIsAuthenticated())this.moderated=true;if(!this.moderated)Element.hide(this.mModeratedMessage);var adminAccessCallback=function(){Element.hide(this.mModeratedMessage);}
serverui().ensureLogin(adminAccessCallback.bind(this),'admin',true);},drawCommentForm:function(){var sName=Loc.comment_form_author;var sSubject=Loc.comment_form_subject;var sBody=Loc.comment_form_body;var sSubmit=Loc.comment_form_submit;var sCancel=Loc.comment_form_cancel;this.commentLoginLink=Builder.node('a',{href:'#'},[Loc.comment_form_login]);this.mAuthorElm=Builder.node('label',{className:'text',id:'comment_form_author_label','for':'comment_form_author',style:'display:none;'},[Builder.node('span',{className:'label'},[sName,' ',this.commentLoginLink]),Builder.node('input',{type:'text',title:[Loc.comment_form_author,Loc.comment_form_login].join(' '),className:'text',id:'comment_form_author'}),Builder.node('br')]);Event.observe(this.commentLoginLink,'click',this.handleEnsureLoginForCommenting.bind(this));this.mModeratedMessage=Builder.node('p',{className:'unmoderatedcomment'},Loc['comment_moderated']);this.mSubmit=Builder.node('input',{type:'submit',value:sSubmit,className:'primaryaction',id:'comment_form_submit'});this.mCancel=Builder.node('input',{type:'button',value:sCancel,className:'secondaryaction',id:'comment_form_cancel'});this.mForm=Builder.node('form',{method:'get',action:'#',className:'comment_form',style:'display:none;'},[Builder.node('div',{className:'form'},[this.mAuthorElm,Builder.node('label',{className:'textarea','for':'comment_form_body'},[Builder.node('span',{className:'label'},[sBody]),Builder.node('textarea',{rows:'5',cols:'40',title:sBody,className:'textarea',id:'comment_form_body'}),Builder.node('br')]),this.mModeratedMessage,Builder.node('div',{className:'submit'},[this.mSubmit,this.mCancel])])]);Event.observe(this.mForm,'submit',this.handleSubmit);Event.observe(this.mForm,'keypress',this.handleKeyPress);Event.observe(this.mSubmit,'click',this.handleButtonClick);Event.observe(this.mCancel,'click',this.handleCancelClick);this.mFocusField='comment_form_body';if(this.allowUnauthenticatedComments){if(!d.cookie.match(/[^\.]sessionID/)||d.cookie.match(/[^\.]sessionID=unauthenticated/)){this.mFocusField='comment_form_author';Element.show(this.mAuthorElm);}}
this.hideModeratedMessage();this.mShowCommentFormDiv.insert({before:this.mForm});publisher().publish('COMMENT_MANAGER_DRAW_FORM',this);},drawNewComment:function(inResponseObj){var commentObj=inResponseObj;if(!commentObj)return;this.mComment=new Object();this.moderated=((!this.allowUnmoderatedComments&&serverui().getCachedLevel()<=2)||(commentObj.unauthenticated&&!this.allowUnmoderatedUnauthenticatedComments));var oTime=createDateObjFromISO8601(commentObj.isoTime,true);this.mComment.dateElm=Builder.node('span',{className:'datetime'},[Loc.getRelativeDatetimeString(oTime)]);this.mComment.bodyElm=Builder.node('div',{className:'contents contentscommentbody'});var sDelete=Loc.comment_delete+commentObj.subject;this.mComment.deleteElm='';if(!commentObj.unauthenticated){this.mComment.deleteElm=Builder.node('a',{href:('/'+commentObj.uid+'/_delete'),className:'deletecomment bvr-deletecomment'},[sDelete]);}
this.className='comment';this.mComment.moderateElm='';if(this.moderated){this.className+=' unmoderatedcomment';this.mComment.moderateElm=Builder.node('p',{className:'unmoderatedcomment'},Loc['comment_moderated']);}
var sAuthor=commentObj.authorLongName||commentObj.author||'';var sImgPath=commentObj.authorIconURI||'/collaboration/images/user.png';var sClassName='icon';if(sImgPath=='/collaboration/images/user.png'){sClassName='icon default';}
var sAuth='';if(commentObj.unauthenticated){sAuthor=commentObj.author||'';sClassName='icon';sImgPath='/collaboration/images/unauthenticated.png';sAuth=(Loc['unauthenticated']||' (unauthenticated)');}
this.htmlCommentUID=commentObj.uid.substring(commentObj.uid.indexOf('groups/'),commentObj.uid.length).replace(/\//g,'_');this.mComment.elm=Builder.node('div',{id:('comment_'+this.htmlCommentUID),className:this.className,style:'display:none;'},[Builder.node('h4',{},[Builder.node('span',{'class':'author',title:(sAuthor+sAuth)},[Builder.node('span',{'class':'name'},[sAuthor,sAuth,]),Builder.node('span',{'class':sClassName},[Builder.node('img',{'src':sImgPath,'alt':'','width':'36','height':'36'}),Builder.node('span',{'class':'mask'})])]),Builder.node('div',{className:'extras'},[this.mComment.dateElm])]),Builder.node('div',{className:'commentbody'},[Builder.node('div',{className:'start startcommentbody'},[Builder.node('span')]),this.mComment.bodyElm,Builder.node('div',{className:'end endcommentbody'},[Builder.node('span')])]),this.mComment.moderateElm,this.mComment.deleteElm]);if(this.commentSortDirection==CommentManager.commentSortDirectionDESC){this.mCommentsList.insert({top:this.mComment.elm});}else{this.mCommentsList.insert({bottom:this.mComment.elm});}
this.mCommentsList.show();this.mComment.bodyElm.innerHTML=commentObj.content;if(!commentObj.unauthenticated){Event.observe(this.mComment.deleteElm,'click',this.handleDeleteComment,true);Event.observe(this.mComment.deleteElm,'mouseover',this.handleActivateComment,true);Event.observe(this.mComment.deleteElm,'mouseout',this.handleDeactivateComment,true);Event.observe(this.mComment.deleteElm,'focus',this.handleActivateComment,true);Event.observe(this.mComment.deleteElm,'blur',this.handleDeactivateComment,true);}
Effect.BlindDown(this.mComment.elm,{duration:0.2,afterFinish:afterFinishShow});},handleSubmit:function(inEvent){Event.stop(inEvent);},handleButtonClick:function(inEvent){Event.stop(inEvent);var oBody=this.mForm.comment_form_body;if(!$F(oBody)){oBody.focus();new Effect.Highlight(oBody,{duration:2,endcolor:'#ffffff'});}else{this.postComment();}},handleCancelClick:function(inEvent){Event.stop(inEvent);this.hideForm();this.mTimer=setTimeout(this.focusToggle.bind(this),250);},handleKeyPress:function(inEvent){if(inEvent.keyCode==Event.KEY_ESC){this.handleCancelClick(inEvent);}},postComment:function(){dialogManager().showProgressMessage('comment_add_progress');server().discussion.addDiscussionEntry(this.handleCommentEntryResponse.bind(this),getMetaTagValue('apple_collab_comment_uid'),{'author':$F(this.mForm.comment_form_author),'subject':'','content':$F(this.mForm.comment_form_body),'parent':getMetaTagValue('apple_collab_uid')});},handleCommentEntryResponse:function(inRequestObj,inResponseObj){dialogManager().hide();notifier().print('comment_added_message');publisher().publish('DID_ADD_COMMENT',this,inResponseObj);this.drawNewComment(inResponseObj);this.hideForm();this.mForm.reset();this.mTimer=setTimeout(this.focusComment.bind(this),210);},focusForm:function(){if($(this.mFocusField))$(this.mFocusField).focus();},focusToggle:function(){try{this.mShowCommentFormLink.focus()}catch(e){};},focusComment:function(){this.mComment.elm.setAttribute('tabindex','-1');this.mComment.elm.style.outline='none';this.mComment.elm.focus();}};var Toolbar=Class.createWithSharedInstance('wikitoolbar',true);Toolbar.prototype={initialize:function()
{if(!$('page_toolbar'))return invalidate;this.mFinalWidth=Toolbar.finalWidth||824;this.draw();this.mChildren={edit:new EditToolbarButton(),add:new AddToolbarButton(),remove:new RemoveToolbarButton()};this.mChildren.edit.setEnabled(false);this.mChildren.add.setEnabled(false);this.mChildren.remove.setEnabled(false);},draw:function(){this.mMainToolbar=this.buildToolbar('main_toolbar');this.addButtonsToToolbar(this.mMainToolbar,['edit_button','add_button','remove_button']);this.mEditToolbar=this.buildToolbar('edit_toolbar');var form=Builder.node('form',[Builder.node('div',{className:'form'},[Builder.node('input',{type:'text',id:'editing_document_title',title:Loc.editing_document_title,value:'',maxLength:'255'})])]);form.onsubmit=invalidate;this.addElementToToolbar(this.mEditToolbar,form);Element.hide(this.mEditToolbar);insertAtBeginning(Builder.node('div',{id:'toolbars',className:'toolbars',style:(SafariFixes.isiPad?'visibility:hidden':'')},[this.mMainToolbar,this.mEditToolbar]),'page_toolbar');},buildToolbar:function(inClassName){return Builder.node('div',{className:inClassName,'role':'toolbar'},[Builder.node('div',{className:'tbtoolbar'},[Builder.node('div',{className:'start starttoolbar'},[Builder.node('span')]),Builder.node('div',{className:'contents contentstoolbar'}),Builder.node('div',{className:'end endtoolbar'},[Builder.node('span')])])]);},setToolbarButtonCallback:function(inButton,inCallback){if(IEFixes.isIE)$(inButton).unselectable='On';Object.extend($(inButton),{onmousedown:invalidate,onmouseup:invalidate,onclick:inCallback});},addElementToToolbar:function(inToolbar,inElement){inToolbar.firstChild.childNodes.item(1).appendChild(inElement);},addButtonsToToolbar:function(inToolbar,inButtonIDs,inOptCallback){var ul=Builder.node('ul',{className:'tbbuttons','role':'presentation'});inButtonIDs.each(function(id){ul.appendChild(Builder.node('li',{id:id,className:'enabled','role':'presentation'},[Builder.node('a',{href:'#','role':'button',title:Loc.tooltips[id]||Loc.toolbar_buttons[id]},[Loc.toolbar_buttons[id]||Loc.tooltips[id]])]));this.setToolbarButtonCallback(ul.lastChild,inOptCallback||invalidate);}.bind(this));this.addElementToToolbar(inToolbar,ul);return ul;},expandToolbar:function(){if(this.mEffect){this.mEffect.cancel();delete this.mEffect;}
this.mOrigWidth=this.mMainToolbar.offsetWidth;this.mEditToolbar.style.width=this.mOrigWidth+'px';this.mEditToolbar.style.opacity=0.01;this.mEditToolbar.setAttribute('aria-disabled','');this.mMainToolbar.setAttribute('aria-disabled','true');Element.show(this.mEditToolbar);this.mEffect=new Effect.Parallel([new Effect.ResizeBy(this.mEditToolbar,this.mFinalWidth-this.mOrigWidth,null,{duration:0.4}),new Effect.Opacity('document_title',{from:1.0,to:0.01,duration:0.5}),new Effect.Opacity(this.mMainToolbar,{from:1.0,to:0.01,duration:0.5}),new Effect.Appear(this.mEditToolbar,{duration:0.55})],{});},collapseToolbar:function(){if(this.mEffect){this.mEffect.cancel();delete this.mEffect;}
this.mEditToolbar.setAttribute('aria-disabled','true');this.mMainToolbar.setAttribute('aria-disabled','');this.mEffect=new Effect.Parallel([new Effect.ResizeBy(this.mEditToolbar,this.mOrigWidth-this.mFinalWidth,null,{duration:0.4}),new Effect.Appear('document_title',{duration:0.4}),new Effect.Fade(this.mEditToolbar,{duration:0.4}),new Effect.Appear(this.mMainToolbar,{duration:0.55,afterFinish:function(effect){var dummy=Element('span');effect.element.insert(dummy);dummy.remove();}})],{});}}
var ToolbarButton=Class.create();ToolbarButton.prototype={finishInitialize:function(){bindEventListeners(this,['clickedButton']);},enabled:function(){var a=$(this.mElement).down('a');if(!a)return true;return(a.style.cursor!='default');},setEnabled:function(inEnable){var opacity=0.99999;var a=this.mElement.down('a');if(inEnable){Element.removeClassName(this.mElement,'disabled');Element.addClassName(this.mElement,'enabled');a.setAttribute('aria-disabled','');}else{Element.removeClassName(this.mElement,'enabled');Element.addClassName(this.mElement,'disabled');a.setAttribute('aria-disabled','true');opacity=0.3;}
a.style.opacity=opacity;if(IEFixes.isIE)a.style.filter='alpha(opacity:'+(opacity*100)+')';a.style.cursor=inEnable?'':'default';},setCallback:function(inCallback){this.clickedButtonCallback=inCallback;wikitoolbar().setToolbarButtonCallback(this.mElement,this.clickedButton);this.setEnabled(this.clickedButton);},clickedButton:function(e){if(this.clickedButtonCallback&&this.enabled())this.clickedButtonCallback(e);return false;}}
var EditToolbarButton=Class.create();Object.extend(Object.extend(EditToolbarButton.prototype,ToolbarButton.prototype),{initialize:function(){this.mElement=$('edit_button');this.finishInitialize();}});var AddToolbarButton=Class.create();Object.extend(Object.extend(AddToolbarButton.prototype,ToolbarButton.prototype),{initialize:function(){this.mElement=$('add_button');this.finishInitialize();}});var RemoveToolbarButton=Class.create();Object.extend(Object.extend(RemoveToolbarButton.prototype,ToolbarButton.prototype),{mIsVersioned:true,initialize:function(){this.mElement=$('remove_button');this.finishInitialize();},drawDialog:function(){if(!this.mDeleteConfirmDialog){var fields=['delete_page_confirm_desc'];if(this.mIsVersioned&&this.mIsAdmin){fields.push({contents:'<label for="delete_page_confirm_permanent_delete"><input id="delete_page_confirm_permanent_delete" type="checkbox" />'+Loc.delete_page_confirm_permanent_delete+'</label>'});}
this.mDeleteConfirmDialog=dialogManager().drawDialog('delete_page_confirm',fields,'delete_page_confirm_ok');}
var delCheckbox=$('delete_page_confirm_permanent_delete');var callback=function(){var command=((!this.mIsVersioned)||(delCheckbox&&delCheckbox.checked))?'permanentlyDeleteEntry':'deleteEntry';dialogManager().showProgressMessage('delete_page_progress');server()[uid().mService][command](this.gotDeleteEntryResponse.bind(this),uid().mValue);}
targetedDialogManager().show(this.mDeleteConfirmDialog,null,callback.bind(this),'remove_button');},clickedButtonCallback:function(e){if(this.enabled())serverui().ensureLogin(this.deletePage.bind(this));},deletePage:function(){if(this.mIsVersioned&&(!this.mIsAdmin)){var adminAccessCallback=function(){this.mIsAdmin=true;this.drawDialog();}
var noAdminAccessCallback=function(){this.mIsAdmin=false;var writeAccessCallback=function(){serverui().ensureLogin([adminAccessCallback.bind(this),this.drawDialog.bind(this)],'admin',true);}
serverui().ensureLogin(writeAccessCallback.bind(this));}
serverui().ensureLogin([adminAccessCallback.bind(this),noAdminAccessCallback.bind(this)],'admin',true);}
else{this.drawDialog();}},gotDeleteEntryResponse:function(inRequestObj,inResponseObj){dialogManager().hide();if(gAnimate)poof().showOverElement('document_title');notifier().printAtPage('page_deleted_message',(uid().mService=='wiki'?uid().mBaseLocation:uid().mParentLocation));}});var WLTEditor=Class.createWithSharedInstance('wikiEditor',true);Object.extend(Object.extend(WLTEditor.prototype,JSEditor.prototype),{mMaxImageWidth:300,mSidebarElement:$('content_extras_column'),mHasSaveComment:true,super_initialize:JSEditor.prototype.initialize,initialize:function(){if(!$('wysiwyg_container')||uid().mValue=='none/none')return invalidate;bindEventListeners(this,['handleHotButtonChange','handleSaveCommentKeypress','handleSaveButtonHover']);this.super_initialize('wysiwyg_container');wikitoolbar().mChildren.add.setCallback(newPageDialog().handleAddButtonClick.bind(newPageDialog()));if(!uid().mValue.match(/\/_/)){wikitoolbar().mChildren.edit.setCallback(this.handleEditButtonClick);wikitoolbar().mChildren.add.setCallback(newPageDialog().handleAddButtonClick.bind(newPageDialog()));if(!uid().mValue.match(/\/welcome$/)){wikitoolbar().mChildren.remove.setCallback(wikitoolbar().mChildren.remove.clickedButtonCallback.bind(wikitoolbar().mChildren.remove));}}
if(d.cookie.match(/editOnAwake=true/)){d.cookie='editOnAwake=; path=/';var editTimerCallback=function(){this.mSelectOnEdit=true;this.handleEditButtonClick();}
setTimeout(editTimerCallback.bind(this),100);}
Event.observe(this.mDoneButton,'mouseover',this.handleSaveButtonHover);publisher().subscribe(this.handleTagChange,'DID_ADD_TAG');publisher().subscribe(this.handleTagChange,'DID_REMOVE_TAG');publisher().publish('DID_LOAD_PAGE_CONTENT',this);},handleTagChange:function(inMessage,inObject,inUserInfo){if($('save_page_hot')&&inUserInfo&&inUserInfo.tag=='hot'){var isHot=(inMessage=='DID_ADD_TAG');if($('save_page_hot').checked!=isHot)$('save_page_hot').checked=isHot;}},checkServerForEdits:function(inOptEditedCallback,inOptUneditedCallback,inShowProgress){if(!this.mModifiedDate){this.mModifiedDate=new Date();var dateStr=getMetaTagValue('apple_collab_modified_date');if(dateStr)this.mModifiedDate=createDateObjFromISO8601(dateStr);}
var gotEntryCallback=function(q,r){dialogManager().hideProgressMessage();var latestModifiedDate=createDateObjFromISO8601(r.modifiedDate);if(latestModifiedDate>this.mModifiedDate){this.mModifiedDate=latestModifiedDate;replaceElementContents($('history_time_author'),String.format(Loc.link_tooltip_lastmod_format,{date:latestModifiedDate.formatDate(Loc.dateFormats.mediumDateAndShortTime),author:r.lastModifiedAuthorLongName}));if(inOptEditedCallback)inOptEditedCallback(r);}
else if(inOptUneditedCallback){inOptUneditedCallback(r);}}
if(inShowProgress)dialogManager().showProgressMessage('save_overwrite_check_progress',true,invalidate);server().wiki.getEntryWithUID(gotEntryCallback.bind(this),uid().mValue);},cleanElementForEditing:function(inElement){$('editing_document_title').value=Element.firstNodeValue('document_title');this.mOriginalTitle=$F('editing_document_title');if($('entry_date')){$('entry_date').hide();var saveExtras='<div id="save_page_comment_container"><label for="save_page_comment">'
+Loc.save_page_dialog_comment
+'<input name="title" id="save_page_comment" class="text" type="text" size="30"></label></div>'
+'<div id="save_page_hot_container"><label for="save_page_hot"><input id="save_page_hot" type="checkbox" class="checkbox">'
+Loc.save_page_dialog_hot
+'</label></div>';new Insertion.Before('entry_date',saveExtras);$('save_page_hot').checked=tagger().hasTag('hot');if(this.mHasSaveComment)this.mSaveCommentHinter=new HintedTextField('save_page_comment','save_comment_hint');Event.observe('save_page_hot','change',this.handleHotButtonChange);$('save_page_comment').observe('keydown',this.handleSaveCommentKeypress);}
publisher().publish('DID_START_EDITING',this);attachmentExpander().collapseAttachments();quicklook().stripAttachments();qtMediaExpander().collapseAllMedia();imageThumbnailManager().prepareForEditing();Element.cleanWhitespace(inElement);if(inElement.lastChild&&(inElement.lastChild.nodeName.toLowerCase()=='pre')){inElement.appendChild(d.createElement('p'));}
if($('tombstoned'))$('tombstoned').remove();wikitoolbar().mChildren.edit.setEnabled(false);if($('paginator'))Element.hide('paginator');},setupEditor:function(inElement,inSkipUpdateCheck){if(this.mUseDesignMode){callback=function(inEvent){var elm=Event.element(inEvent);if(elm.tagName.match(/html/i)){var sel=this.mEditorWindow.getSelection();sel.selectAllChildren(this.mEditorBody.firstChild);sel.collapseToEnd();}
if(elm&&elm.nodeName&&elm.nodeName.toLowerCase()=='img'){this.handleImageClick(inEvent);}}
if(this.d)Event.observe(this.d,'click',callback.bindAsEventListener(this));if(this.d)Event.observe(this.d,'dragdrop',this.checkEditorForMovedTable.bindAsEventListener(this));}
else{$A(inElement.getElementsByTagName('img')).each(function(img){img.onclick=this.handleImageClick.bindAsEventListener(this);}.bind(this));}
if(this.d&&!IEFixes.isIE&&!OperaFixes.isOpera)this.d.execCommand('styleWithCSS',false,false);if(this.mSelectionManager){if(this.mSelectOnEdit||MozillaFixes.isGecko){this.mSelectOnEdit=false;this.mSelectionManager.selectElementChildren($(inElement).down?($(inElement).down('p')||inElement):inElement);if(MozillaFixes.isGecko)this.mEditorWindow.getSelection().collapseToStart();}
else{this.mSelectionManager.moveCursorToBeginning();}}
var pageIsUpdatedCallback=function(r){$('editing_document_title').value=r.title;this.mOriginalTitle=r.title;inElement.innerHTML=r.content;attachmentExpander().collapseAttachments();Element.cleanWhitespace(inElement);if(inElement.lastChild&&(inElement.lastChild.nodeName.toLowerCase()=='pre')){inElement.appendChild(d.createElement('p'));}
this.setupEditor(inElement,true);movableTable().expandTablesForEditing(inElement);}
if(!inSkipUpdateCheck)setTimeout(function(){this.checkServerForEdits(pageIsUpdatedCallback.bind(this))}.bind(this),900);},getUpdateDictionary:function(){var content=this.cleanForSaving(this.getHTML());var updateDictionary={content:content};if($('editing_document_title')&&$F('editing_document_title').match(/\S/))updateDictionary.title=$F('editing_document_title');if(this.mSaveCommentHinter)updateDictionary['commit-comment']=this.mSaveCommentHinter.getValue();return updateDictionary;},cleanElementAfterEditing:function(inElement,inResponseDict){if(inResponseDict){if($F('editing_document_title').match(/\S/))replaceElementContents('document_title',$F('editing_document_title'));if(inResponseDict.modifiedDate)this.mModifiedDate=createDateObjFromISO8601(inResponseDict.modifiedDate);}
publisher().publish('DID_FINISH_EDITING',this);if($('save_page_hot')){if($('save_page_hot').checked){tagger().addTag('hot',true);}
else{tagger().removeTag('hot');}}
if($('entry_date')){if(inResponseDict){var attributionString=String.format(Loc.link_tooltip_lastmod_format,{date:Loc.getRelativeDatetimeString(createDateObjFromISO8601(inResponseDict.modifiedDate,true)),author:inResponseDict.lastModifiedAuthorLongName});replaceElementContents($('history_time_author'),Loc['history_edited']+attributionString);}
$('entry_date').show();Event.stopObserving('save_page_hot','change',this.handleHotButtonChange);$('save_page_comment').stopObserving('keydown');$('save_page_comment_container').remove();$('save_page_hot_container').remove();}
attachmentExpander().expandAttachments();quicklook().processAttachments();qtMediaExpander().findMedia();imageThumbnailManager().findThumbnails();wikitoolbar().mChildren.edit.setEnabled(true);if($('paginator'))Element.show('paginator');},showLinkDialog:function(){this.mSelectionManager.store();linkPopupManager().show();},showImageDialog:function(inAuthorized){if(!inAuthorized){serverui().ensureLogin(function(){this.showImageDialog(true)}.bind(this));return false;}
if(!this.mImageDialog){this.mImageDialog=dialogManager().drawDialog('image_dialog',[{label:'image_dialog_file',contents:'<input id="image_dialog_upload_id" name="upload_id" type="hidden"><input id="image_dialog_file" name="Image" type="file">'},{label:'image_dialog_alt',contents:'<input id="image_dialog_alt" name="image_dialog_alt" type="text">'},{label:'image_dialog_align',contents:'<div id="image_dialog_align_widget"></div>'},{id:'image_dialog_explanation',contents:'<br />'+Loc.image_dialog_explanation1+'<br />'+Loc.image_dialog_explanation2+'<br />'+Loc.image_dialog_explanation3}],'image_dialog_ok','images');this.mImageDialogAlignWidget=new ButtonBarWidget('image_dialog_align_widget','img_align_widget',['image_dialog_align_left','image_dialog_align_center','image_dialog_align_right','image_dialog_align_none'],{mOffsetWidth:32,mSelectedIndex:1});}
this.mSelectionManager.store();$('image_dialog_upload_id').value=''+server().getNextUploadID();$('image_dialog_alt').value='';addUploadFrame();targetedDialogManager().show(this.mImageDialog,this.handleImageUploadCancel.bind(this),this.handleImageDialogOK.bind(this),'image_button',true,null,true);},insertActiveUpload:function(){try{this.mSelectionManager.retrieve()}catch(e){};this.insertHTML('<br style="clear:both" />');this.insertImage('/collaboration/images/blank.gif',null,null,'apple_active_upload');var elm=this.d.getElementById('apple_active_upload');elm.id='';elm.className='upload_progress';return elm;},documentHasChanged:function(){return((this.getHTML()!=this.mOriginalText)||($('editing_document_title')&&($F('editing_document_title')!=this.mOriginalTitle)));},handleHotButtonChange:function(inEvent){if($F('save_page_hot')){tagger().addTag('hot',true);}
else{tagger().removeTag('hot');}},handleSaveCommentKeypress:function(inEvent){if(inEvent.keyCode==Event.KEY_RETURN){inEvent.stop();this.toggleEditMode();return false;}
return true;},handleSaveButtonHover:function(inEvent){if(this.mSaveCommentHinter&&(this.mSaveCommentHinter.getValue()=='')){if(this.mSaveCommentEffect){this.mSaveCommentEffect.cancel();if($('save_page_comment'))$('save_page_comment').setStyle({backgroundColor:''});delete this.mSaveCommentEffect;}
this.mSaveCommentEffect=new Effect.Highlight('save_page_comment');}},handleDocumentKeypress:function(inEvent){if(navigator.userAgent.match(/Mac /)&&inEvent.ctrlKey&&(inEvent.keyCode==76||inEvent.charCode==108)){Event.stop(inEvent);if(this.mEditMode&&this.documentHasChanged()&&this.mSaveCommentHinter&&(this.mSaveCommentHinter.getValue()=='')){this.handleSaveButtonHover();$('save_page_comment').focus();}
else{this.toggleEditMode();}}},handleEditButtonClick:function(inEvent){if(inEvent)Event.stop(inEvent);if((!this.mEditMode)&&(wikitoolbar().mChildren.edit.enabled())){var toggleCallback=function(){if((!this.mEditMode)&&(wikitoolbar().mChildren.edit.enabled()))this.toggleEditMode();};serverui().ensureLogin(toggleCallback.bind(this));}
else{if(!this.documentHasChanged()){if($('save_page_hot'))$('save_page_hot').checked=tagger().hasTag('hot');this.toggleEditMode(true);return true;}
var changesCallback=function(r){if(confirm(String.format(Loc.save_overwrite_confirm,{lastModifiedAuthorLongName:r.lastModifiedAuthorLongName}))){this.toggleEditMode();}}
var noChangesCallback=function(r){this.toggleEditMode();}
popupManager().hide();this.checkServerForEdits(changesCallback.bind(this),noChangesCallback.bind(this),true);}
return false;},checkEditorForMovedTable:function(inEvent){movableTable().checkEditor(this.d);},handleImageClick:function(inEvent){this.img=Event.element(inEvent);if(Element.hasClassName(this.img,'__tableEditorDragHandle')){movableTable().handleClick(inEvent);return;}
if(Element.hasClassName(this.img,'attachment_handle_img'))return true;if(!this.mImageSettingsDialog){this.mImageSettingsDialog=dialogManager().drawDialog('image_settings_dialog',[{label:'image_dialog_alt',contents:'<input id="image_settings_alt" name="image_settings_alt" type="text">'},{label:'image_dialog_align',contents:'<div id="image_settings_align_widget"></div>'},{label:'',contents:'<div id="image_settings_delete_div"></div>'}],'image_settings_dialog_ok');this.mImageSettingsAlignWidget=new ButtonBarWidget('image_settings_align_widget','img_align_widget',['image_dialog_align_left','image_dialog_align_center','image_dialog_align_right','image_dialog_align_none'],{mOffsetWidth:32,mSelectedIndex:1});}
if(!this.oDeleteImageLink){this.oDeleteImageLink=Builder.node('a',{href:'#',id:'image_dialog_delete',title:Loc.tooltips.image_dialog_delete||''},[Loc.image_dialog_delete]);Event.observe(this.oDeleteImageLink,'click',function(inEvent){Event.stop(inEvent);Element.remove(this.img);if(MozillaFixes.isGecko){this.d.designMode='off';this.d.designMode='on';}
movableTable().collapseTablesAfterEditing();movableTable().expandTablesForEditing();dialogManager().hide();}.bindAsEventListener(this));$('image_settings_delete_div').appendChild(this.oDeleteImageLink);}
['alignleft','aligncenter','alignright','donotalign'].each(function(key,i){if(Element.hasClassName(this.img,key))this.mImageSettingsAlignWidget.setSelectedIndex(i);}.bind(this));$('image_settings_alt').value=this.img.getAttribute('alt')||'';var callback=function(){var aClasses=['alignleft','aligncenter','alignright','donotalign'];aClasses.each(function(sClass){Element.removeClassName(this.img,sClass);}.bind(this));Element.addClassName(this.img,aClasses[this.mImageSettingsAlignWidget.getSelectedIndex()]);this.img.setAttribute('alt',$F('image_settings_alt'));if(this.mUseDesignMode){this.d.designMode='off';this.d.designMode='on';movableTable().collapseTablesAfterEditing();movableTable().expandTablesForEditing();}}
targetedDialogManager().show(this.mImageSettingsDialog,null,callback.bind(this),this.img);},handleImageUploadCancel:function(){removeUploadFrame();},handleImageDialogOK:function(){this.mRetryCount=0;var elm=this.insertActiveUpload();var className=['alignleft','aligncenter','alignright','donotalign'][this.mImageDialogAlignWidget.getSelectedIndex()];Element.addClassName(elm,className);var uploadCompleteCallback=function(inProgressObj,inUploadInfo){removeUploadFrame();dialogManager().hide();if(inUploadInfo.retry){if(this.mRetryCount++>=3){Element.remove(inProgressObj.mElement);alert(Loc.attach_upload_error);}
else{debug_message('Upload failed. Retrying...');addUploadFrame();$('image_dialog_upload_id').value=''+server().getNextUploadID();$('image_dialog_form').submit();this.mUploadProgress=new UploadProgressPlaceholder(dialogManager().mProgressBar,$F('image_dialog_upload_id'),uploadCompleteCallback.bind(this));}}
else if(inUploadInfo.uploaded<=0){Element.remove(elm);alert(Loc.attach_upload_nofile_error);}
else if(inUploadInfo.isImage){var filename=inUploadInfo.filename||'';notifier().print(String.format(Loc.attach_confirm,{filename:filename}));inUploadInfo.sources.each(function(sourceDict){var img=Builder.node('img',{className:className,src:sourceDict.source,alt:$F('image_dialog_alt'),'tabindex':'0','role':'button'});if(!this.mUseDesignMode)img.onclick=this.handleImageClick.bindAsEventListener(this);if(sourceDict.fullSizeSource){Element.addClassName(img,'thumbnail');img.setAttribute('longdesc',sourceDict.fullSizeSource+'#'+sourceDict.fullSizeWidth+'x'+sourceDict.fullSizeHeight);}
else if(sourceDict.qtSource&&sourceDict.width&&sourceDict.height){Element.addClassName(img,'posterimg');img.setAttribute('longdesc',sourceDict.qtSource);img.width=sourceDict.width;img.height=sourceDict.height;}
img.title=sourceDict.originalFilename||'';if(window.unitTestHandler)img.onload=function(){unitTestHandler.messageFromJS_('inserted image finished loading');img.onload='';}
var parentEl=elm.parentNode;parentEl.insertBefore(img,elm);parentEl.insertBefore(Builder.node('br'),elm);publisher().publish('DID_INSERT_MEDIA',this,{element:img,src:sourceDict.qtSource||sourceDict.source});}.bind(this));Element.remove(elm);}
else if(inUploadInfo.fileSizeError){Element.remove(elm);alert(String.format(Loc.attach_upload_toobig_error,{maxFileSize:inUploadInfo.maxFileSize}));}
else{Element.remove(inProgressObj.mElement);alert(Loc.image_invalid_error);}}
var uploadCancelledCallback=function(){if(elm)Element.remove(elm);this.handleUploadCancelled();}
dialogManager().showProgressMessage(Loc.image_upload_progress,true,uploadCancelledCallback.bind(this));this.mUploadProgress=new UploadProgressPlaceholder(dialogManager().mProgressBar,$F('image_dialog_upload_id'),uploadCompleteCallback.bind(this));},showAttachDialog:function(inAuthorized){if(!inAuthorized){serverui().ensureLogin(function(){this.showAttachDialog(true)}.bind(this));return false;}
if(!this.mAttachDialog){this.mAttachDialog=dialogManager().drawDialog('attach_dialog',[{label:'attach_dialog_file',contents:'<input id="attach_dialog_file" name="Attachment" type="file" />'}],'attach_dialog_ok','attachments');this.mAttachDialog.firstChild.appendChild(Builder.node('input',{type:'hidden',id:'attach_dialog_upload_id',name:'upload_id'}));}
this.mSelectionManager.store();$('attach_dialog_upload_id').value=''+server().getNextUploadID();targetedDialogManager().show('attach_dialog',this.handleAttachDialogCancel.bind(this),this.handleAttachDialogOK.bind(this),'attach_button',true,null,true);addUploadFrame();},handleAttachDialogCancel:function(){removeUploadFrame();},handleAttachDialogOK:function(){this.mRetryCount=0;var elm=this.insertActiveUpload();var uploadCompleteCallback=function(inProgressObj,inUploadInfo){var filename=inUploadInfo.filename||'';var originalFilename=inUploadInfo.originalFilename||filename;notifier().print(String.format(Loc.attach_confirm,{filename:filename}));removeUploadFrame();dialogManager().hide();if(inUploadInfo.retry){dialogManager().hide();if(this.mRetryCount++>=3){Element.remove(inProgressObj.mElement);alert(Loc.attach_upload_error);}
else{debug_message('Upload failed. Retrying...');addUploadFrame();$('attach_dialog_upload_id').value=''+server().getNextUploadID();$('attach_dialog_form').submit();this.mUploadProgress=new UploadProgressPlaceholder(dialogManager().mProgressBar,$F('attach_dialog_upload_id'),uploadCompleteCallback.bind(this));}}
else if(inUploadInfo.uploaded&&inUploadInfo.uploaded>0){var altAndTitle=String.format(Loc.attach_alt.replace(':',''),{filename:'"'+originalFilename+'"'});elm.className='attachment_handle_img';elm.setAttribute('src','/collaboration/images/generic_document.png');elm.setAttribute('title',altAndTitle);elm.setAttribute('alt',altAndTitle);elm.setAttribute('longdesc',filename);if(inUploadInfo.sources&&inUploadInfo.sources.length>0){elm.setAttribute('src',filename+'.png');}
if(inUploadInfo.quicklookable){var attachmentUID=$A(filename.match(/attachments\/([\w]+)/g)).last();var pageUIDMatch=filename.match(/((?:users|groups)\/.*)\/attachments\//);var pageUID=uid().mValue;if(pageUIDMatch&&(pageUIDMatch.length>1))pageUID=pageUIDMatch[1];server()[uid().mService].getQuickLookPreviewPropertiesForAttachment([],pageUID,attachmentUID);elm.className+=' quicklookable';if(inUploadInfo.isMovie||inUploadInfo.isAudio){var info={};if(inUploadInfo.isMovie){info.isMovie=true;info.width=(inUploadInfo.width?inUploadInfo.width:0);info.height=(inUploadInfo.height?inUploadInfo.height:0);}
else if(inUploadInfo.isAudio){info.isAudio=true;}
else if(inUploadInfo.isImage){info.isImage=true;}
elm.name=Object.toJSON(info);}}
publisher().publish('DID_ATTACH_FILE',this,{element:elm,src:filename,quicklookable:inUploadInfo.quicklookable});}
else if(inUploadInfo.fileSizeError){if(elm.parentNode)elm.parentNode.removeChild(elm);alert(String.format(Loc.attach_upload_toobig_error,{maxFileSize:inUploadInfo.maxFileSize}));}
else{if(elm.parentNode)elm.parentNode.removeChild(elm);alert(Loc.attach_upload_nofile_error);}}
var uploadCancelledCallback=function(){if(elm)Element.remove(elm);this.handleUploadCancelled();}
dialogManager().showProgressMessage(Loc.attach_upload_progress,true,uploadCancelledCallback.bind(this));this.mUploadProgress=new UploadProgressPlaceholder(dialogManager().mProgressBar,$F('attach_dialog_upload_id'),uploadCompleteCallback.bind(this));},handleUploadCancelled:function(){removeUploadFrame();dialogManager().hide();if(this.mUploadProgress){this.mUploadProgress.destroy();delete this.mUploadProgress;}}});var HistoryModeManager=Class.createWithSharedInstance('historyModeManager',true);HistoryModeManager.prototype={mKeys:['lastModifiedBy','comment','time'],mHistoryListHeight:75,initialize:function(){if(!$('history_link'))return invalidate;bindEventListeners(this,['handleHistoryButtonClick','handleRevisionClick','handleCompareButtonClick','handleDeleteButtonClick','handleRevertButtonClick','handleKeyPress']);this.mContainer=Builder.node('div',{id:'history_view',className:'contents contentshistory'});this.mOriginalTitle=$('document_title').innerHTML;this.mOriginalContent=$('editable_content').innerHTML;this.mElement=Builder.node('div',{id:'history_mode',className:'history',style:'display:none'},[Builder.node('div',{className:'start starthistory'},[Builder.node('span')]),this.mContainer,Builder.node('div',{className:'end endhistory'},[Builder.node('span')])]);insertAfter(this.mElement,'entry_date');this.mButton=$('history_link');this.mButton.setAttribute('role','button');this.createHistoryList();this.mSplitView=new SplitView(this.mContainer);Event.observe(this.mButton,'click',this.handleHistoryButtonClick);this.bShowDiffs=false;this.showing=false;this.elementsToHide=HistoryModeManager.elementsToHide||[];if(window.location.hash.match(/^#history/)&&uid().mService=='wiki'){serverui().ensureLogin(this.toggle.bind(this),'read');}},createHistoryList:function(){this.mList=Builder.node('ul',{id:'history_list'});this.mHistoryRevert=Builder.node('a',{id:'history_revert',title:Loc.history_revert_tooltip},[Loc.history_revert]);Event.observe(this.mHistoryRevert,'click',this.handleRevertButtonClick);this.mHistoryCompare=Builder.node('a',{href:'#compare',id:'history_compare',title:Loc.history_compare_tooltip},[Loc.history_compare]);Event.observe(this.mHistoryCompare,'click',this.handleCompareButtonClick);this.mHistoryControls=Builder.node('div',{className:'historycontrols'},[Builder.node('ul',{id:'historycontrolslist'},[Builder.node('li',{},[this.mHistoryRevert]),Builder.node('li',{},[this.mHistoryCompare])])]);this.mHistoryContainer=Builder.node('div',{id:'historycontainer',className:'historycontainer',style:'height:'+this.mHistoryListHeight+'px;'},[this.mList]);this.mContainer.appendChild(this.mHistoryContainer);this.mContainer.appendChild(Builder.node('div',{className:'splitter'},[Builder.node('div',{className:'splitter_handle'})]));this.mContainer.appendChild(this.mHistoryControls);if(d.cookie.match(/[^\.]sessionID/)&&!d.cookie.match(/[^\.]sessionID=unauthenticated/)){serverui().ensureLogin(this.drawDeleteButton.bind(this),'admin',true);}},drawDeleteButton:function(){this.mHistoryDelete=Builder.node('a',{id:'history_delete',title:Loc.history_delete_tooltip},[Loc.history_delete]);Event.observe(this.mHistoryDelete,'click',this.handleDeleteButtonClick);$('historycontrolslist').appendChild(Builder.node('li',{},[this.mHistoryDelete]));},handleHistoryButtonClick:function(inEvent){Event.stop(inEvent);serverui().ensureLogin(this.toggle.bind(this),'read');},handleRevisionClick:function(inOptEvent){if(this.mCurrentRow)Element.removeClassName(this.mCurrentRow,'current_row');this.mCurrentRow=Event.findElement(inOptEvent,'li');if(this.mCurrentRow==this.mList.getElementsByTagName('li')[0]){this.mHistoryRevert.removeAttribute('href');if(this.mHistoryDelete)this.mHistoryDelete.removeAttribute('href');}else{this.mHistoryRevert.setAttribute('href','#revert');if(this.mHistoryDelete)this.mHistoryDelete.setAttribute('href','#delete');}
if(this.mList.getElementsByTagName('li').length==1)this.disableCompareAndDelete();this.updateRevision();},updateRevision:function(){Element.addClassName(this.mCurrentRow,'current_row');if(this.mComparedRow){Element.removeClassName(this.mComparedRow,'compared_row');this.mComparedRow=null;}
if(this.mList.getElementsByTagName('li').length==1)return;var uid=this.mCurrentRow.dataSource.uid;if(this.bShowDiffs&&this.mCurrentRow.nextSibling){this.mComparedRow=this.mCurrentRow.nextSibling;Element.addClassName(this.mComparedRow,'compared_row');uid2=uid;uid=this.mComparedRow.dataSource.uid;uid+='-'+uid2.substring(uid2.lastIndexOf('/')+1,uid2.length);}
this.mRevisionRequest=server().versions.getEntryWithUID(this.gotRevisionResponse.bind(this),uid);},toggle:function(inOptDoNotReset){this.mHistoryContainer.style.overflow='hidden';if(!this.showing){this.mOriginalTitle=$('document_title').innerHTML;this.mOriginalContent=$('editable_content').innerHTML;this.mHistoryContainer.style.overflow='auto';this.mHistoryContainer.style.overflowX='hidden';this.mHistoryContainer.style.overflowY='scroll';dialogManager().showProgressMessage('history_popup_progress');this.sendHistoryRequest();this.showing=true;Event.observe(d,'keypress',this.handleKeyPress);this.mHistoryCompare.setAttribute('href','#compare');for(var i=0,c=this.elementsToHide.length;i<c;i++){var el=$(this.elementsToHide[i]);new Effect.Fade(el,{duration:0.3})}}else{this.showing=false;Event.stopObserving(d,'keypress',this.handleKeyPress);this.disableCompareAndDelete();replaceElementContents(this.mButton,Loc.last_edited);this.mButton.setAttribute('title',Loc.tooltips.history_link);this.mHistoryCompare.setAttribute('title',Loc.history_compare_tooltip);replaceElementContents(this.mHistoryCompare,Loc.history_compare);this.bShowDiffs=false;if(!inOptDoNotReset){replaceElementContents('document_title',this.mOriginalTitle);replaceElementContents('editable_content',this.mOriginalContent,true);$('editable_content').setStyle({overflow:'',overflowX:'',overflowY:''});quicklook().processAttachments();}
Element.removeClassName(this.mButton,'historyopen');this.mEffect=Effect.BlindUp(this.mHistoryContainer,{duration:0.25,afterFinish:function(){Element.show($('history_time_author'));Element.show($('toolbars'));}.bind(this)});setTimeout("Effect.Fade($('history_mode'),{duration:0.1})",150);for(var i=0,c=this.elementsToHide.length;i<c;i++){var el=$(this.elementsToHide[i]);new Effect.Appear(el,{duration:0.2});}}},disableCompareAndDelete:function(){this.mHistoryCompare.removeAttribute('href');if(this.mHistoryDelete)this.mHistoryDelete.removeAttribute('href');},handleKeyPress:function(inEvent){if(inEvent.keyCode==Event.KEY_ESC)this.toggle();},sendHistoryRequest:function(){removeAllChildNodes(this.mList);server().versions.getEntries(this.gotHistoryResponse.bind(this),uid().mBasePath,{page:uid().mValue});},gotHistoryResponse:function(inRequestObj,inResponseObj){var rows=inResponseObj;dialogManager().hide();Element.hide($('toolbars'));Element.hide($('history_time_author'));replaceElementContents(this.mButton,Loc.history_cancel);this.mButton.setAttribute('title',Loc.tooltips.history_cancel);Element.addClassName(this.mButton,'historyopen');Element.hide(this.mHistoryContainer);rows.inject(rows.length,function(i,row){var sEditType=Loc.history_updated;switch(row['editType']){case'updated':break;case'created':sEditType=Loc.history_created;break;case'undeleted':sEditType=Loc.history_undeleted;break;case'deleted':sEditType=Loc.history_deleted;break;default:return i;}
var date=createDateObjFromISO8601(row['time'],true);var sDate=Loc.getDateString(date);var dtint=parseInt(dateObjToISO8601(date));var today=new Date();var yesterday=new Date();yesterday.setTime(today.valueOf()-86400000);if(dtint==parseInt(dateObjToISO8601(today)))sDate=Loc['today'];else if(dtint==parseInt(dateObjToISO8601(yesterday)))sDate=Loc['yesterday'];var commitcomment=row['comment'];var commitdatematch=commitcomment.match(/##(\d{8}T\d{6}Z)$/);if(commitdatematch){var localdatestr=Loc.getLongDateString(createDateObjFromISO8601(commitdatematch[1],true));commitcomment=commitcomment.replace(/##(\d{8}T\d{6}Z)$/,localdatestr);}
var commitcommentescaped=commitcomment.replace(/\"/g,'&quot;').replace(/\'/g,'&apos;');if(commitcomment=='First created')commitcomment=Loc.history_initial_creation;if(commitcomment=='Deleted')commitcomment=Loc.history_deleted;if(commitcomment=='Un-deleted')commitcomment=Loc.history_undeleted;if(commitcomment=='')commitcomment=Builder.node('em',{},[String.format(Loc.history_no_comment,{author:row['lastModifiedByLongname']})]);var elItem=Builder.node('li',{},[Builder.node('span',{className:'lastModifiedBy'},[sEditType,sDate,Loc.history_by,row['lastModifiedByLongname']]),' ',Builder.node('span',{className:'commitcomment',title:commitcommentescaped},[commitcomment]),' ',Builder.node('span',{className:'committime'},[Loc.getTimeString(date)])]);elItem.dataSource=row;this.mList.appendChild(elItem);Event.observe(elItem,'mousedown',this.handleRevisionClick);return i;}.bind(this));if(!this.mList.getElementsByTagName('li').length){this.toggle();return;}else if(this.mList.getElementsByTagName('li').length==1){this.disableCompareAndDelete();}
this.mCurrentRow=null;var matches=window.location.hash.match(/^#history-(\d+)$/);if(matches&&matches[1]){this.mCurrentRow=this.mList.select('li').find(function(element){return element.dataSource.revision==matches[1];});}
if(!this.mCurrentRow){this.mCurrentRow=this.mList.getElementsByTagName('li')[0];}
Element.addClassName(this.mCurrentRow,'current_row');this.mComparedRow=null;this.mLatestRevision=this.mCurrentRow.dataSource.uid;Element.show(this.mElement);if(SafariFixes.isWebKit)Element.getInvisibleSize(this.mHistoryContainer);this.mHistoryContainer.style.height=this.mHistoryListHeight+'px';this.mEffect=Effect.BlindDown(this.mHistoryContainer,{duration:0.25,afterFinish:function(){this.mHistoryContainer.style.overflow='auto';this.updateRevision();}.bind(this)});},gotRevisionResponse:function(inRequestObj,inResponseObj){dialogManager().hide();this.mCurrentTitle=inResponseObj.title;this.mCurrentContent=inResponseObj.content;Element.hide($('editable_content'));replaceElementContents($('editable_content'),this.mCurrentContent,true);this.cleanupDiffedContent();attachmentExpander().expandAttachments();quicklook().processAttachments();replaceElementContents($('document_title'),this.mCurrentTitle,true);this.mEffect=Effect.BlindDown($('editable_content'),{duration:0.2,afterFinish:afterFinishShow});publisher().publish('DID_LOAD_PAGE_CONTENT',this);},cleanupDiffedContent:function(){var linkText='Link: ';$('editable_content').getElementsBySelector('a').each(function(link){if(link.innerHTML.startsWith(linkText)){Element.remove(link);}
else{startIndex=link.innerHTML.indexOf(linkText);if(startIndex!=-1){link.innerHTML=link.innerHTML.substring(0,startIndex);}}});$$('ins, del').each(function(x){if(x.empty()){Element.remove(x);}});},handleCompareButtonClick:function(inEvent){Event.stop(inEvent);if(!Event.element(inEvent).getAttribute('href'))return;this.bShowDiffs=!this.bShowDiffs;if(this.bShowDiffs){this.mHistoryCompare.setAttribute('title',Loc.history_view_alone_tooltip);replaceElementContents(this.mHistoryCompare,Loc.history_view_alone);}else{this.mHistoryCompare.setAttribute('title',Loc.history_compare_tooltip);replaceElementContents(this.mHistoryCompare,Loc.history_compare);}
this.updateRevision();},handleDeleteButtonClick:function(inEvent){Event.stop(inEvent);if(!Event.element(inEvent).getAttribute('href')||this.mList.getElementsByTagName('li').length==1)return;if(confirm(Loc.history_delete_confirm))serverui().ensureLogin(this.deleteRevision.bind(this),'admin');},deleteRevision:function(){dialogManager().showProgressMessage('history_deleted');this.mRevisionRequest=server().wiki.removeVersionFromEntry(this.gotDeleteConfirmation.bind(this),uid().mValue,this.mCurrentRow.dataSource.uid);},gotDeleteConfirmation:function(inRequestObj,inResponseObj){dialogManager().hide();this.mEffect=Effect.BlindUp(this.mCurrentRow,{duration:0.2,afterFinish:this.showLatestRevision.bind(this)});},showLatestRevision:function(){if(this.mCurrentRow)Element.remove(this.mCurrentRow);this.mCurrentRow=this.mList.getElementsByTagName('li')[0];this.mHistoryRevert.removeAttribute('href');if(this.mHistoryDelete)this.mHistoryDelete.removeAttribute('href');this.updateRevision();if(this.mList.getElementsByTagName('li').length==1)this.disableCompareAndDelete();this.mButton.focus();},handleRevertButtonClick:function(inEvent){Event.stop(inEvent);if(Event.element(inEvent).getAttribute('href'))this.revert();},revert:function(){if(confirm(Loc.history_revert_confirm)){dialogManager().showProgressMessage('history_reverted');this.mRevisionRequest=server().versions.getEntryWithUID(this.getRevertConfirmation.bind(this),this.mCurrentRow.dataSource.uid);}},getRevertConfirmation:function(inRequestObj,inResponseObj){this.mCurrentContent=inResponseObj.content;replaceElementContents('document_title',this.mCurrentTitle);replaceElementContents('editable_content',this.mCurrentContent,true);var comment=Loc.history_reverted_comment+'##'+dateObjToISO8601(createDateObjFromISO8601(this.mCurrentRow.dataSource.time));server().wiki.updateEntry(this.gotRevertConfirmation.bind(this),uid().mValue,{'title':this.mCurrentTitle,'content':this.mCurrentContent,'commit-comment':comment}).makeRequired();},gotRevertConfirmation:function(inRequestObj,inResponseObj){dialogManager().hide();notifier().print('history_reverted_notify');attachmentExpander().expandAttachments();quicklook().processAttachments();this.toggle(true);}}
var LinkPopupManager=Class.createWithSharedInstance('linkPopupManager');LinkPopupManager.prototype={initialize:function(){bindEventListeners(this,['handleUnlinkItemClick','handleSubmenuItemClick','handleNewPageItemClick','handleSearchItemClick','handleOtherURLItemClick']);this.mLinkPopup=popupManager().createPopupElement('toolbarpopup','link_popup');popupManager().itemWithTitle(this.mLinkPopup,Loc.link_manager_popup.newpage,null,this.handleNewPageItemClick);popupManager().itemWithTitle(this.mLinkPopup,Loc.link_manager_popup.search,null,this.handleSearchItemClick);popupManager().itemWithTitle(this.mLinkPopup,Loc.link_manager_popup.other,null,this.handleOtherURLItemClick);popupManager().itemWithTitle(this.mLinkPopup,Loc.link_manager_popup.unlink,null,this.handleUnlinkItemClick);},show:function(){this.mSelectedString=wikiEditor().mSelectionManager.getSelectedString();popupManager().show('createlink_button',this.mLinkPopup,[IEFixes.isIE7?-767:0,0]);var filterList=[{name:'SettingsFilter',parameters:{settingsKeys:['recentPages']}}];this.mRecentsRequest=server().preferences.getUsersRecentPages([this.gotRecentEntries.bind(this),invalidate],uid().mBasePath);},gotRecentEntries:function(inRequestObj,inResponseObj){if(!this.mHasDrawnDivider){this.mHasDrawnDivider=true;popupManager().divider(this.mLinkPopup);}
$$('#link_popup .link_popup_recent_item').invoke('remove');$A(inResponseObj).each(function(row){var item=popupManager().itemWithTitle(this.mLinkPopup,row.title,row.url||uid().mSlash+row.uid+'/',this.handleSubmenuItemClick);Element.addClassName(item.parentNode,'link_popup_recent_item');}.bind(this));},handleSubmenuItemClick:function(inEvent){popupManager().hide();var elm=Event.element(inEvent);try{wikiEditor().mSelectionManager.retrieve()}catch(e){};wikiEditor().createLink(elm.getAttribute('href')||'',Element.firstNodeValue(elm)||null);return false;},handleUnlinkItemClick:function(inEvent){try{wikiEditor().mSelectionManager.retrieve()}catch(e){};wikiEditor().createLink('');return false;},handleNewPageItemClick:function(inEvent){popupManager().hide();newPageDialog().showNewPageDialog(this.handleNewPageCreated.bind(this));$('new_page_title').value=this.mSelectedString;return false;},handleNewPageCreated:function(inUID,inURL){try{wikiEditor().mSelectionManager.retrieve()}catch(e){};var linkTitle=$F('new_page_title');wikiEditor().createLink(inURL||uid().mSlash+inUID+'/',linkTitle||null);return false;},handleSearchItemClick:function(inEvent){popupManager().hide();var callback=function(){try{wikiEditor().mSelectionManager.retrieve()}catch(e){};wikiEditor().createLink(linkSearchDialog().mChosenUID,linkSearchDialog().mChosenTitle||null);}
linkSearchDialog().show(null,callback,this.mSelectedString);return false;},handleOtherURLItemClick:function(inEvent){try{wikiEditor().mSelectionManager.retrieve()}catch(e){};var selectedString=wikiEditor().mSelectionManager.getSelectedString();popupManager().hide();if(this.mLinkOtherDialog){Element.remove(this.mLinkOtherDialog);delete this.mLinkOtherDialog;}
var aInputs=[{label:'link_other_dialog_title',contents:'<input name="title" id="link_other_title" type="text" size="48">'}];if(!selectedString)aInputs.push({label:'link_other_dialog_text',contents:'<input name="title" id="link_other_text" type="text" size="48">'});this.mLinkOtherDialog=dialogManager().drawDialog('link_other_dialog',aInputs,'link_other_dialog_ok');$('link_other_title').value='';callback=function(){try{wikiEditor().mSelectionManager.retrieve()}catch(e){};var linkText=$('link_other_text')?$F('link_other_text').trim():'';var url=$F('link_other_title').trim();if(!url.match(/^mailto\:/)&&!url.match(/\//)&&url.match(/^[^@\/]+@[^@\/\.]+\.[^@\/]+$/)){url='mailto:'+url;}
else if(!url.match(/[a-z]:/i)&&url.split('/')[0].match(/^[^.]+\./)){url='http://'+url;}
wikiEditor().createLink(url,linkText||null);}
targetedDialogManager().show(this.mLinkOtherDialog,null,callback,'createlink_button');return false;}}
var LinkSearchDialogManager=Class.createWithSharedInstance('linkSearchDialog');LinkSearchDialogManager.prototype={initialize:function(){},show:function(inCancelCallback,inOKCallback,inOptSearchString){if(!$('link_search_dialog')){dialogManager().drawDialog('link_search_dialog',[{contents:'<input type="'+(SafariFixes.isWebKit?'search':'text')+'" id="link_search_dialog_q" class="search_field" placeholder="'+Loc.search_hint+'"+"results="10" incremental>'},{contents:'<ul id="link_search_dialog_results"></ul>'}],'link_search_dialog_ok');$('link_search_dialog').down('form').onsubmit=invalidate;this.mSearchField=new LinkSearchField('link_search_dialog_q',{mResultTable:$('link_search_dialog_results'),mClickedItemCallback:this.handleItemClick.bind(this)});}
this.mCancelCallback=inCancelCallback;this.mOKCallback=inOKCallback;targetedDialogManager().show('link_search_dialog',this.handleCancel.bind(this),this.handleOK.bind(this),'createlink_button');if(inOptSearchString){$('link_search_dialog_q').value=inOptSearchString;this.mSearchField.runQuery();}},handleCancel:function(){if(this.mCancelCallback)this.mCancelCallback();},handleOK:function(){this.mSearchField.selectSuggestedUID();if(this.mOKCallback)this.mOKCallback();delete this.mChosenUID;delete this.mChosenTitle;},handleItemClick:function(inDisplayString,inOptURL){this.mChosenUID=inOptURL||(uid().mSlash+(this.mSearchField.mChosenUID||'')+'/');this.mChosenTitle=this.mSearchField.mChosenDataSource.title;return false;}}
var LinkSearchField=Class.create();Object.extend(Object.extend(LinkSearchField.prototype,SearchFieldBase.prototype),{mPositionResults:false,mCaptureReturnChar:false,mSelectOnClick:false,gotSearchResult:function(inRequestObj,inResponseObj){this.mRows=inResponseObj;var q=inRequestObj.requestMessageObj.params[2].q[0].toLowerCase();this.mRows=inResponseObj.partition(function(row){return(row.title.toLowerCase().indexOf(q)>=0);}).flatten();this.draw();this.mTimer=null;},drawCell:function(inCell){replaceElementContents(inCell,inCell.dataSource.title);inCell.appendChild(Builder.node('span',{className:'snippet'},(inCell.dataSource.contentSnippet||'').substring(0,100)));},clickedUser:function(e){e.stop();this.suggestUID(Event.findElement(e,'a').dataSource.uid);return false;},constructQuery:function(inSearchString){return server().search.getEntries([this.gotSearchResult.bind(this),this.handleError.bind(this)],uid().mBasePath,{q:[inSearchString],sortDirection:['forward'],sort:['title'],howMany:50},['title','uid','contentSnippet','url']);},fieldChanged:function(e){if(!this.mTimer)this.mTimer=setTimeout(this.runQuery.bind(this),this.mInterval);},handleChanged:function(e){}});var NewPageDialogManager=Class.createWithSharedInstance('newPageDialog');NewPageDialogManager.prototype={initialize:function(){},showNewPageDialog:function(inOptCallback){if(!this.mElement){this.mElement=dialogManager().drawDialog('new_page_dialog',[{label:'new_page_dialog_title',contents:'<input name="title" id="new_page_title" type="text" size="30" />'}],'new_page_dialog_ok');}
this.mCallback=inOptCallback;targetedDialogManager().show(this.mElement,null,this.handleNewPageDialogOK.bind(this),'add_button',true);},handleAddButtonClick:function(inEvent){serverui().ensureLogin(this.showNewPageDialog.bind(this));},handleNewPageDialogOK:function(){var pageDict={title:$F('new_page_title')};server()[uid().mService].addEntry(this.gotNewPageResponse.bind(this),uid().mBasePath,pageDict);},gotNewPageResponse:function(inRequestObj,inResponseObj){var r=inResponseObj;dialogManager().hide();if(r&&r.uid){if(this.mCallback){notifier().print('new_page_confirm');this.mCallback(r.uid,r.url);}
else{d.cookie='editOnAwake=true; path=/';notifier().printAtPage('new_page_confirm',r.url||uid().mSlash+r.uid+'/');}}}}
var MovableTableManager=Class.createWithSharedInstance('movableTable');MovableTableManager.prototype={initialize:function(inElement){if(IEFixes.isIE)return;if(!inElement)inElement='editable_content';this.elm=$(inElement);this.elmId=this.elm.id;bindEventListeners(this,['handleClick']);},checkEditor:function(inOptElement){if(IEFixes.isIE)return;this.elm=inOptElement||this.elm;var aImgs=this.elm.getElementsByTagName('img');for(var i=0,c=aImgs.length;i<c;i++){if(Element.hasClassName(aImgs[i],'__tableEditorDragHandle')){var index=aImgs[i].id.replace('draghandle_','');if(aImgs[i].parentNode.getAttribute('id')!='tablecontainer_'+index){this.handleMove(aImgs[i],index);}}}},collapseTablesAfterEditing:function(inOptElement){if(IEFixes.isIE)return;this.elm=inOptElement||this.elm;var aImgs=this.elm.getElementsByTagName('img');for(var i=0,c=aImgs.length;i<c;i++)if(Element.hasClassName(aImgs[i],'__tableEditorDragHandle'))aImgs[i].parentNode.removeChild(aImgs[i]);var aDivs=this.elm.getElementsByTagName('div');for(var i=0,c=aDivs.length;i<c;i++)if(Element.hasClassName(aDivs[i],'__tableContainer'))this.unwrapTableDragContainer(aDivs[i]);},expandTablesForEditing:function(inOptElement){if(IEFixes.isIE)return;this.elm=inOptElement||this.elm;var aTables=this.elm.getElementsByTagName('table');for(var i=0,c=aTables.length;i<c;i++){if(Element.hasClassName(aTables[i],'__useTableEditor'))this.wrapTableDragContainer(aTables[i]);}},handleClick:function(inEvent){var oImg=Event.element(inEvent);if(oImg.tagName.toLowerCase()!='img'&&!Element.hasClassName(oImg,'__tableEditorDragHandle'))return;var oTable=oImg.parentNode.getElementsByTagName('table').item(0);if(!Element.hasClassName(oTable,'__useTableEditor'))return;wikiEditor().checkEventForTable(inEvent,oTable);},handleMove:function(inImage,inIndex){if(IEFixes.isIE)return;var oDiv=this.elm.getElementById('tablecontainer_'+inIndex);if(!oDiv)return inImage.parentNode.removeChild(inImage);var oTable=oDiv.getElementsByTagName('table').item(0);if(!oTable)return;var extra=oDiv.nextSibling;if(extra&&extra.tagName&&extra.tagName.match(/br/i))extra.parentNode.removeChild(extra);if(inImage.parentNode.tagName.match(/table|caption|thead|tbody|tfoot|tr|th|td/i)){var oParent=inImage.parentNode;oParent.removeChild(inImage);while(oParent.parentNode&&!oParent.tagName.match(/table/i))oParent=oParent.parentNode;if(Element.hasClassName(oParent.parentNode,'__tableContainer'))oParent=oParent.parentNode;inImage=Builder.node('img',{id:'draghandle_'+inIndex,className:'__tableEditorDragHandle',src:'/collaboration/images/blank.gif',width:1,height:1});oParent.parentNode.insertBefore(inImage,oParent);}
inImage.parentNode.insertBefore(oTable,inImage);inImage.parentNode.insertBefore(Builder.node('br'),inImage);oDiv.parentNode.removeChild(oDiv);inImage.parentNode.removeChild(inImage);this.wrapTableDragContainer(oTable,inIndex);},unwrapTableDragContainer:function(elm){if(IEFixes.isIE)return;promoteElementChildren(elm);},wrapTableDragContainer:function(elm,index){if(IEFixes.isIE)return;if(!index&&!(index===0))index=Math.floor(Math.random()*999999);var oImg=Builder.node('img',{id:'draghandle_'+index,className:'__tableEditorDragHandle',src:'/collaboration/images/blank.gif',width:1,height:1});var oDiv=Builder.node('div',{id:'tablecontainer_'+index,className:'__tableContainer'},[oImg]);elm.parentNode.insertBefore(oDiv,elm);elm.parentNode.removeChild(elm);oDiv.appendChild(elm);if(!this.mUseDesignMode)oImg.onclick=wikiEditor().handleImageClick.bindAsEventListener(wikiEditor());}}
var AttachmentExpander=Class.createWithSharedInstance('attachmentExpander',true);AttachmentExpander.prototype={initialize:function(){this.expandAttachments();bindEventListeners(this,['handleMouseOverEvent','handleMouseOutEvent']);},collapseAttachments:function(){$A(d.getElementsByClassName('attachment')).each(function(a){Element.cleanWhitespace(a);var img=a.firstChild;if((a.nodeName.toLowerCase()=='a')&&img&&(img.nodeName.toLowerCase()=='img')){img.parentNode.removeChild(img);a.parentNode.insertBefore(img,a);a.parentNode.removeChild(a);Element.stopObserving(img,'mouseover');Element.stopObserving(img,'mouseout');}}.bind(this));},expandAttachments:function(){$A(d.getElementsByClassName('attachment_handle_img')).each(function(img){Element.cleanWhitespace(img);if(img.nodeName.toLowerCase()=='img'&&img.parentNode.className!='attachment'){var sFullSrc=img.getAttribute('longdesc')||img.getAttribute('name')||img.getAttribute('alt')||img.getAttribute('src');if(!sFullSrc.match(/^\/|^https?:\/\//))sFullSrc='attachments/'+sFullSrc;var a=Builder.node('a',{className:'attachment',href:sFullSrc});img.parentNode.insertBefore(a,img);Element.remove(img);a.appendChild(img);if(img.getAttribute('src').match(/generic_document\.png$/))a.appendChild(d.createTextNode(img.getAttribute('title')));}}.bind(this));$A($$('a.attachment')).each(function(attachment){var img=attachment.down('img');if(!img||!quicklook().isAttachmentHostedLocally(img.src))return;Element.observe(img,'mouseover',this.handleMouseOverEvent);Element.observe(img,'mouseout',this.handleMouseOutEvent);(new Image()).src=img.src.replace(/\.png$/,'-hover.png');}.bind(this))},handleMouseOverEvent:function(inEvent){var img=inEvent.findElement('img');var quicklookHandle=img.up('a.attachment');var newSrc=img.src.replace(/(?!-hover)\.png$/,'-hover.png');img.src=newSrc;if(quicklookHandle&&quicklookHandle.hasClassName('quicklookable')){quicklookHandle.addClassName('hovering');}},handleMouseOutEvent:function(inEvent){var img=inEvent.findElement('img');var quicklookHandle=img.up('a.attachment');var newSrc=img.src.replace(/-hover\.png/,'.png');img.src=newSrc;if(quicklookHandle&&quicklookHandle.hasClassName('quicklookable')){quicklookHandle.removeClassName('hovering');}}}
var QTMediaExpander=Class.createWithSharedInstance('qtMediaExpander',true);QTMediaExpander.prototype={initialize:function(){bindEventListeners(this,['handleClick']);this.mEmbedFrameID=0;this.findMedia();publisher().subscribe(function(){this.collapseAllMedia()}.bind(this),'DIALOG_WILL_SHOW');publisher().subscribe(function(){this.findMedia()}.bind(this),'DIALOG_HIDDEN');},findMedia:function(){$$('#page_body img.posterimg').each(function(img){if(img.onclick!=this.handleClick){img.onclick=this.handleClick;img.setAttribute('tabindex','0');img.setAttribute('role','button');}}.bind(this));},collapseAllMedia:function(){if(!$('page_body'))return false;$$('#page_body div.qtmedia').each(function(div){var img=div.next('img');if(!img||!img.hasClassName('posterimg'))return false;div.remove();img.show();img.setAttribute('tabindex','0');img.setAttribute('role','button');});$$('#page_body img.posterimg').each(function(img){img.onclick=invalidate;});},expandMedia:function(inImg,inOptBackgroundColor){var img=$(inImg);img.setAttribute('tabindex','0');img.setAttribute('role','button');var fullSrc=img.getAttribute('longdesc')||img.getAttribute('name')||img.getAttribute('alt');var backgroundColor=(inOptBackgroundColor||'#FFFFFF');if(img.width&&img.height&&fullSrc&&fullSrc!=''){var extendHeight=(img.height>=20);var embed=Builder.node('div',{id:'qtmovie1',className:'qtmedia',style:'width:'+img.width+'px;height:'+(img.height+(extendHeight?12:0))+'px'});var alignMatch=img.className.match(/align\S+/);if(alignMatch)Element.addClassName(embed,alignMatch[0]);img.parentNode.insertBefore(embed,img);var objectHTML='<object classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" width="'+img.width+'" height="'+(img.height+(extendHeight?16:0))+'" codebase="http://www.apple.com/qtactivex/qtplugin.cab"><param name="SRC" value="/collaboration/fake.qti"><param name="QTSRC" value="'+fullSrc+'?sessionID='+server().sessionID+'"><param name="TYPE" value="video/quicktime"><param name="SCALE" value="aspect"><param name="AUTOPLAY" value="true"><param name="CONTROLLER" value="true"><param name="TARGET" value="myself"><param name="BGCOLOR" value="'+backgroundColor+'"></object>';if(MozillaFixes.isGecko){Element.hide(img);embed.innerHTML='<embed src="/collaboration/fake.qti" qtsrc="'+fullSrc+'?sessionID='+encodeURIComponent(server().sessionID)+'" type="video/quicktime" autoplay="true", controller="true" target="myself" bgcolor="'+backgroundColor+'" width="'+img.width+'" height="'+(img.height+(extendHeight?16:0))+'" pluginspage="http://www.apple.com/quicktime/download/" scale="aspect" />';}
else if(IEFixes.isIE){var frmID='qFrame'+(this.mEmbedFrameID++);var qFrame=Builder.node('iframe',{border:'0',frameborder:'0',id:frmID,name:frmID,style:'width:'+img.width+'px;height:'+(img.height+(extendHeight?16:0))+'px;border:0;overflow:hidden'});embed.appendChild(qFrame);$(frmID).contentWindow.document.write('<html><body style="padding:0;margin:0;overflow:hidden">'+objectHTML.replace(/<object/,'<object id="qtmovie1"')+'</body></html>');Element.hide(img);var attempts=0;var checkForPlayer=function(){try{$(frmID).contentWindow.document.qtmovie1.Play();}
catch(e){if(++attempts>10)return false;setTimeout(checkForPlayer,1000);}}
setTimeout(checkForPlayer,1000);}
else{embed.innerHTML=objectHTML;Element.hide(img);}}},handleClick:function(inEvent){var img=Event.element(inEvent);this.expandMedia(img);}}
var TOCGenerator=Class.create();TOCGenerator.prototype={initialize:function(){bindEventListeners(this,['handleShowPopup','handleHidePopup']);$A(d.getElementsByClassName('toc_anchor')).each(function(elm){promoteElementChildren(elm);});this.draw();},draw:function(){var docTitle=$('document_title');if(docTitle&&(!$('directory_listing'))&&(!$('entries_list'))){this.mLinkPopup=popupManager().createPopupElement('toolbarpopup','toc_popup');this.mParentElement=$('editable_content');$A(this.mParentElement.getElementsByTagName('*')).each(function(currentNode){var headerMatch=currentNode.nodeName.match(/^h(\d)/i);if(currentNode.firstChild&&headerMatch){var innerText=currentNode.innerText||currentNode.textContent;if(innerText&&innerText.length>0){var callback=function(){Element.scrollTo(currentNode);popupManager().hide();if(currentNode.focus)currentNode.focus();return false;}
var item=popupManager().itemWithTitle(this.mLinkPopup,innerText,null,callback);item.style.paddingLeft=(parseInt(headerMatch[1])-1)+'em';item.style.paddingRight='1em';}}}.bind(this));docTitle.style.cursor='pointer';Event.observe(docTitle,'mousedown',this.handleShowPopup);}},remove:function(){var docTitle=$('document_title');if(this.mElement){Element.remove(this.mElement);docTitle.setAttribute(title,'');Event.stopObserving(docTitle,'mousedown',this.handleShowPopup);Element.removeClassName(docTitle,'document_toc_link');delete this.mElement;delete this.mParentElement;}},handleShowPopup:function(inEvent){Event.stop(inEvent);popupManager().show('document_title',this.mLinkPopup);},handleHidePopup:function(inEvent){Event.stop(inEvent);popupManager().hide();}}
TombstoneResurrector=Class.createWithSharedInstance('tombstoneResurrector',true);TombstoneResurrector.prototype={initialize:function(){if($('tombstoned')&&$('editable_content'))$('tombstoned').onclick=this.handleResurrectLinkClick.bindAsEventListener(this);},handleResurrectLinkClick:function(inEvent){var callback=function(inRequestObj,inResponseObj){dialogManager().hide();replaceElementContents('editable_content',inResponseObj.content,true);notifier().print('undelete_page_message');}
dialogManager().showProgressMessage('undelete_page_progress');server()[uid().mService].undeleteEntry(callback.bind(this),uid().mValue);return false;}}
window.onbeforeunload=function(){return eval("documentShouldUnload()")};if(window.loaded)loaded('wiki.js');

/* ModalTableDialogManager.js */

var ModalTableDialogManager=Class.create();Object.extend(Object.extend(ModalTableDialogManager.prototype,ModalDialogManager.prototype),{clean:function(s){s=s.replace(/[\s\t\r\n]+/g,' ').replace(/^ /,'').replace(/ $/,'');s=s.replace(/class=""/gi,'');return s;},cleanAfterEditingCell:function(s){s=s.replace(/[\n]/gi,'<br>');s=this.clean(s);s=s.replace(/<a /gi,'<a tabindex="-1" ');if(!s.match(/<br>[\s\t\r\n]*$/i))s+='<br>';return s;},cleanAfterTableEditor:function(s){s=this.clean(s);s=s.replace(/tabindex="-1"/gi,'target="wiki_link_preview"');s=s.replace(/<br[\s\t\r\n]*\/?>$/i,'');return s;},cleanBeforeEditingCell:function(inElement){var s=$(inElement).innerHTML;s=this.clean(s);s=s.replace(/tabindex="-1"/gi,'');s=s.replace(/<br[\s\t\r\n]*\/?>/gi,'\n').replace(/\n$/,'');return s;},cleanBeforeTableEditor:function(inElement){var s=$(inElement).innerHTML;s=this.clean(s);s=s.replace(/target="wiki_link_preview"/gi,'tabindex="-1"');return s;},clearCurrents:function(){if(this.mTimer)clearTimeout(this.mTimer);if(this.currents&&this.currents.cell){this.currents.cell.tabIndex=0;Element.removeClassName(this.currents.cell,'active');}
if(this.input&&this.input.parentNode){this.input=Element.remove(this.input);}
this.currents=new Object();},drawDialog:function(inID,inTable){wikiEditor().mSelectionManager.store();if(wikiEditor().mUseDesignMode){wikiEditor().d.designMode='off';wikiEditor().d.designMode='on';Event.observe(wikiEditor().d,'dragdrop',wikiEditor().checkEditorForMovedTable.bindAsEventListener(wikiEditor()));}
bindEventListeners(this,['handleAddCol','handleAddRow','handleCancelClick','handleCellFocus','handleDelCol','handleDelRow','handleDeleteClick','handleHeaderCol','handleHeaderRow','handleInputBlur','handleKeyUp','handleOKClick','handleTableClick']);if(!inID)var inID='tableDialog';this.mTable=this.getTableInfo(inTable);var tableDialogTitle=Builder.node('h2',this.mTable.data.isEdit?Loc.table_dialog_header_edit:Loc.table_dialog_header_insert);var sHeaderRowButton=(this.mTable.data.headerRow?Loc.table_dialog_row_header_del:Loc.table_dialog_row_header_add);var sHeaderColButton=(this.mTable.data.headerCol?Loc.table_dialog_col_header_del:Loc.table_dialog_col_header_add);var oTableDialogToolbar=Builder.node('div',{className:'tbtoolbar'},[Builder.node('div',{className:'start starttoolbar'},[Builder.node('span')]),Builder.node('div',{className:'contents contentstoolbar'},[Builder.node('ul',{className:'tbbuttons'},[Builder.node('li',{id:'addrow_button',className:'enabled'},[Builder.node('a',{href:'#',id:inID+'AddRow',title:(Loc.table_dialog_addrow)},[Loc.table_dialog_addrow])]),Builder.node('li',{id:'addcol_button',className:'enabled'},[Builder.node('a',{href:'#',id:inID+'AddCol',title:(Loc.table_dialog_addcol)},[Loc.table_dialog_addcol])]),Builder.node('li',{id:'delrow_button',className:'enabled'},[Builder.node('a',{href:'#',id:inID+'DelRow',title:(Loc.table_dialog_delrow)},[Loc.table_dialog_delrow])]),Builder.node('li',{id:'delcol_button',className:'enabled'},[Builder.node('a',{href:'#',id:inID+'DelCol',title:(Loc.table_dialog_delcol)},[Loc.table_dialog_delcol])]),Builder.node('li',{id:'headrow_button',className:'enabled'},[Builder.node('a',{href:'#',id:inID+'HeaderRow',title:sHeaderRowButton},[sHeaderRowButton])]),Builder.node('li',{id:'headcol_button',className:'enabled'},[Builder.node('a',{href:'#',id:inID+'HeaderCol',title:sHeaderColButton},[sHeaderColButton])])]),Builder.node('ul',{className:'tbactions'},[Builder.node('li',{},[Builder.node('a',{href:'#',id:(inID+'Delete'),title:(Loc.table_dialog_delete)},[Loc.table_dialog_delete])])])]),Builder.node('div',{className:'end endtoolbar'},[Builder.node('span')])]);this.oContents=Builder.node('div',{id:(inID+'Contents')});var oForm=Builder.node('form',{id:inID+'Form',method:'get',action:'#',onsubmit:'return false;'},[oTableDialogToolbar,this.oContents]);var oDialog=Builder.node('div',{id:inID,className:'dialog','role':'dialog'},[Builder.node('div',{className:'dialog_contents'},[tableDialogTitle,oForm])]);this.drawDialogTable();this.editCell($('cell_0_0'));oForm.appendChild(Builder.node('div',{id:inID+'Submit',className:'submit'},[Builder.node('input',{type:'submit',className:'button primaryaction',id:inID+'_ok',value:(Loc.table_dialog_ok),name:'ok_button'}),Builder.node('input',{type:'button',className:'button secondaryaction',id:inID+'_cancel',value:Loc.cancel,name:'cancel_button'})]));d.body.appendChild(oDialog);this.mActiveElement=oDialog;Event.observe($(inID+'_ok'),'click',this.handleOKClick);Event.observe($(inID+'_cancel'),'click',this.handleCancelClick);Event.observe($(inID+'Delete'),'click',this.handleDeleteClick);Event.observe(d,'keyup',this.handleKeyUp);this.headerRowButton=$(inID+'HeaderRow');this.headerColButton=$(inID+'HeaderCol');Event.observe(this.headerRowButton,'click',this.handleHeaderRow);Event.observe(this.headerColButton,'click',this.handleHeaderCol);Event.observe($(inID+'AddCol'),'click',this.handleAddCol);Event.observe($(inID+'DelCol'),'click',this.handleDelCol);Event.observe($(inID+'AddRow'),'click',this.handleAddRow);Event.observe($(inID+'DelRow'),'click',this.handleDelRow);$(inID+'Form').onsubmit=invalidate;dialogManager().show(this.mActiveElement);return this.mActiveElement;},drawDialogTable:function(){this.clearCurrents();if(!this.oEditTable){this.oEditTable=Builder.node('table',{className:'tableEditor'});this.oContents.appendChild(this.oEditTable);Event.observe(this.oEditTable,'click',this.handleTableClick);}else if(IEFixes.isIE){while(this.oEditTable.childNodes.length){this.oEditTable.removeChild(this.oEditTable.childNodes[0]);}}else{this.oEditTable.innerHTML='';}
var oThead=Builder.node('thead');var oTbody=Builder.node('tbody');this.oEditTable.appendChild(oThead);this.oEditTable.appendChild(oTbody);for(var iRow=0,c=this.mTable.data.matrix.length;iRow<c;iRow++){var row=this.mTable.data.matrix[iRow];var oRow=Builder.node('tr');var bHeaderRow=(this.mTable.data.headerRow&&iRow==0);for(var iCol=0,c2=row.cells.length;iCol<c2;iCol++){var cell=row.cells[iCol];var cellName='cell_'+(iRow)+'_'+(iCol);var bHeaderCol=(this.mTable.data.headerCol&&iCol==0);var sTagName='td';if(bHeaderRow||bHeaderCol)sTagName='th';var oCell=Builder.node(sTagName,{'name':cellName,'tabindex':'0'});oCell.innerHTML='<div><div class="cellcontents">'+cell.text+'</div></div>';oRow.appendChild(oCell);Event.observe(oCell,'focus',this.handleCellFocus);}
if(bHeaderRow)oThead.appendChild(oRow);else oTbody.appendChild(oRow);}},editCell:function(inCell){var el=inCell;if(!el)return;if(!(this.currents.cell&&this.currents.cell==el)){this.clearCurrents();}
this.currents.cell=el;this.currents.coords=null;if(this.currents.cell)this.currents.coords=this.currents.cell.getAttribute('name').replace('cell_','').split('_');this.currents.cell.tabIndex=-1;Element.addClassName(this.currents.cell,'active');var positionContainer=this.currents.cell.down('div');var htmlContainer=positionContainer.down('div')
var contents=this.cleanBeforeEditingCell(htmlContainer);if(!this.input){this.input=Builder.node('textarea',{'type':'text','rows':'1'},[contents]);Event.observe(this.input,'blur',this.handleInputBlur);}else{this.input.value=contents;}
positionContainer.appendChild(this.input);this.timer=setTimeout(this.focus.bind(this),1);},focus:function(){if(this.input)this.input.focus();},getTableInfo:function(inTable){var bEdit=true;if(!inTable){inTable=Builder.node('table',{className:'data'},[Builder.node('tr',{},[Builder.node('th'),Builder.node('th'),Builder.node('th')]),Builder.node('tr',{},[Builder.node('td'),Builder.node('td'),Builder.node('td')]),Builder.node('tr',{},[Builder.node('td'),Builder.node('td'),Builder.node('td')])]);bEdit=false;}
var mTable=new Object();mTable.isEdit=bEdit;mTable.rows=inTable.getElementsByTagName('tr');for(var iRow=0,c=mTable.rows.length;iRow<c;iRow++){Element.cleanWhitespace(mTable.rows[iRow]);}
mTable.headerRow=(mTable.rows[0].lastChild.nodeName.toLowerCase()=='th');mTable.headerCol=(mTable.rows[mTable.rows.length-1].firstChild.nodeName.toLowerCase()=='th');mTable.matrix=new Array();for(var iRow=0,c=mTable.rows.length;iRow<c;iRow++){var elRow=mTable.rows[iRow];mTable.matrix[iRow]=new Object();mTable.matrix[iRow].cells=new Array();for(var iCol=0,c2=elRow.childNodes.length;iCol<c2;iCol++){var elCell=elRow.childNodes[iCol];mTable.matrix[iRow].cells[iCol]=new Object();mTable.matrix[iRow].cells[iCol].text=this.cleanBeforeTableEditor(elCell);}}
delete mTable.rows;var response=new Object();response.data=mTable;if(bEdit)response.node=inTable;return response;},handleAddCol:function(e){Event.stop(e);this.syncMatrix();var iColIndex=this.mTable.data.matrix[0].cells.length;for(var i=0,c=this.mTable.data.matrix.length;i<c;i++){if(this.currents.coords){iColIndex=parseInt(this.currents.coords[1])+1;this.mTable.data.matrix[i].cells.splice(iColIndex,0,{'tagName':'td','href':'','text':''});}else{this.mTable.data.matrix[i].cells.push({'tagName':'td','href':'','text':''});}}
this.drawDialogTable();this.editCell(document.getElementsByName('cell_0_'+iColIndex).item(0));},handleAddRow:function(e){Event.stop(e);this.syncMatrix();var oRow=new Object();oRow.cells=new Array();for(var i=0,c=this.mTable.data.matrix[0].cells.length;i<c;i++){oRow.cells[i]={href:'',text:''};}
if(this.currents.coords){var iRowIndex=parseInt(this.currents.coords[0])+1;this.mTable.data.matrix.splice(iRowIndex,0,oRow);}
else this.mTable.data.matrix.push(oRow);this.drawDialogTable();if(!iRowIndex)iRowIndex=this.mTable.data.matrix.length-1;this.editCell(document.getElementsByName('cell_'+iRowIndex+'_0').item(0));},handleCancelClick:function(e){dialogManager().hide();Event.stop(e);Event.stopObserving(d,'keyup',this.handleKeyUp,false);delete wikiEditor().mTableDialog;if($('tableDialog'))Element.remove($('tableDialog'));},handleCellFocus:function(e){var el=Event.element(e);if(!el.tagName||!(el.tagName.toLowerCase()!='td'||el.tagName.toLowerCase()!='th'))return;if(this.mTimer)clearTimeout(this.mTimer);this.editCell(el);},handleDelCol:function(e){Event.stop(e);if(this.mTable.data.matrix[0].cells.length>1){this.syncMatrix();for(var i=0,c=this.mTable.data.matrix.length;i<c;i++){if(this.currents.coords)this.mTable.data.matrix[i].cells.splice(this.currents.coords[1],1);else this.mTable.data.matrix[i].cells.pop();}
this.drawDialogTable();}},handleDelRow:function(e){Event.stop(e);if(this.mTable.data.matrix.length>1){this.syncMatrix();if(this.currents.coords)this.mTable.data.matrix.splice(this.currents.coords[0],1);else this.mTable.data.matrix.pop();this.drawDialogTable();}},handleDeleteClick:function(e){if(this.mTable.node)Element.remove(this.mTable.node);this.handleCancelClick(e);},handleHeaderCol:function(e){Event.stop(e);this.mTable.data.headerCol=!this.mTable.data.headerCol;this.syncMatrix();this.drawDialogTable();},handleHeaderRow:function(e){Event.stop(e);this.mTable.data.headerRow=!this.mTable.data.headerRow;this.syncMatrix();this.drawDialogTable();},handleInputBlur:function(e){this.updateCell();this.mTimer=setTimeout(this.clearCurrents.bind(this),300);},handleKeyUp:function(e){if(e.keyCode==Event.KEY_ESC){this.handleCancelClick(e);return;}else if(e.keyCode==Event.KEY_TAB){return;}else if(this.input&&this.input.parentNode){this.updateCell();}},handleOKClick:function(e){this.insertTable(this.mTable);this.handleCancelClick(e);},handleTableClick:function(e){Event.stop(e);var el=e.target;var tagName=el.tagName.toLowerCase();if(tagName=='textarea')return;if(tagName=='td'||tagName=='th')return;while(tagName!='td'&&tagName!='th'&&tagName!='table'){el=el.parentNode;tagName=el.tagName.toLowerCase();}
if(tagName=='table')return;this.editCell(el);},insertTable:function(inTable){this.syncMatrix();var str='';for(var iRow=0,c=this.mTable.data.matrix.length;iRow<c;iRow++){var bHeaderRow=(this.mTable.data.headerRow&&iRow==0);if(bHeaderRow)str+='<thead>';str+='<tr>';for(var iCol=0,c2=this.mTable.data.matrix[iRow].cells.length;iCol<c2;iCol++){var oCell=this.mTable.data.matrix[iRow].cells[iCol];var bHeaderCol=(this.mTable.data.headerCol&&iCol==0);var sTagName='td';if(bHeaderRow||bHeaderCol)sTagName='th';str+='<'+sTagName+'>';str+=this.cleanAfterTableEditor(oCell.text);str+='</'+sTagName+'>';}
str+='</tr>';if(bHeaderRow)str+='</thead>';}
try{wikiEditor().mSelectionManager.retrieve()}catch(e){};wikiEditor().insertTable(str,(inTable&&inTable.node?inTable.node:null));},showDialog:function(){if(typeof this.mCurrentTable=='undefined'||this.mCurrentTable==this.d)this.mCurrentTable=null;this.drawDialog('',this.mCurrentTable);},syncMatrix:function(){var elements=$$('.cellcontents');for(var i=0,c=elements.length;i<c;i++){var htmlContainer=elements[i];var cell=htmlContainer.up().up();var coords=cell.getAttribute('name').replace('cell_','').split('_');this.mTable.data.matrix[coords[0]].cells[coords[1]].text=htmlContainer.innerHTML;}},updateCell:function(){if(this.currents.cell)this.currents.cell.down('.cellcontents').innerHTML=this.cleanAfterEditingCell($F(this.input));;}});if(window.loaded)loaded('ModalTableDialogManager.js');

/* quicklook.js */

var QuickLook=Class.createWithSharedInstance('quicklook',true);QuickLook.prototype={initialize:function(){this.extensions=getMetaTagValue('apple_supported_quicklook_extensions').split(',');this.defaultPanelSize={'width':744,'height':580};this.defaultAudioPanelSize={'width':264,'height':307};this.interval=1000;this.firstRequest=true;this.processAttachments();this.start={};this.fullScreenBoundary=25;this.fullScreenMode=false;this.isMovie=false;this.isAudio=false;this.animationDuration=0.5;this.pannedPreviewPosition={'x':0,'y':0};bindEventListeners(this,['showPreviewPanelAnimationDidFinish','dismissPreviewPanel','dismissPreviewPanelAnimationDidFinish','handleResizeWidgetMouseDown','handleResizeWidgetMouseDrag','handleResizeWidgetEndMouseDrag','handlePreviewPanMouseDown','handlePreviewPanMouseDrag','handlePreviewPanMouseEndDrag','switchDisplayedPreview','toggleFullScreenMode','handleWindowKeyboardEvent','centerPreviewPanel','preventWindowFromScrolling','onAttachmentQuicklookButtonClick','handleAttachmentDownloadClick']);(new Image()).src="/collaboration/css/required/img/spinner_c7c7c7.gif";(new Image()).src="/collaboration/css/required/img/spinner_transparent.gif";(new Image()).src="/collaboration/css/required/img/quicklook_cap_on.png";(new Image()).src="/collaboration/css/required/img/quicklook_cap_alt_on.png";this.preloadingDelay=500;},processAttachments:function(){this.stripAttachments();var attachments=$A(d.getElementsByClassName('attachment'));attachments.each(function(attachment){var attachmentPath=attachment.getAttribute('href');var attachmentExtension=attachmentPath.match(/([\w]+)$/)[1];attachmentExtension=attachmentExtension.toLowerCase();if(attachmentExtension=="zip"){var extensions=attachmentPath.match(/\.([\w]+)\.zip$/);if(extensions&&extensions.size()>1){attachmentExtension=extensions[1];}}
if(this.isAttachmentHostedLocally(attachmentPath)&&(this.extensions.include(attachmentExtension)||(attachment.down('img')&&attachment.down('img').classNames().inspect().include('quicklookable')))){attachment.addClassName('quicklookable');var quicklookLink=Builder.node('span',{className:'quicklook'});quicklookLink.observe('click',this.onAttachmentQuicklookButtonClick);Element.insert(attachment,quicklookLink);}},this);},isAttachmentHostedLocally:function(inAttachmentPath)
{var exp=new RegExp('^(('+window.location.protocol+'//'+window.location.host+')|(\/.*))');matches=inAttachmentPath.match(exp);return(matches&&(matches.length>0));},onAttachmentQuicklookButtonClick:function(e)
{e.stop();quicklook().showPreviewPanelForAttachment(e.element());},stripAttachments:function(){$$('span.quicklook').each(function(q){q.remove();});},render:function(){this.mask=Builder.node('div',{id:'quicklook_mask'});this.quicklook_panel=Builder.node('div',{id:'quicklook_panel'},[Builder.node('div',{id:'quicklook_panel_close','style':'display: none;'}),Builder.node('div',{id:'quicklook_panel_title','style':'display: none;'}),Builder.node('div',{id:'quicklook_panel_loading','style':'display: none;'},[Builder.node('h2',{},Loc.quicklook_loading)]),Builder.node('div',{id:'quicklook_panel_browser',style:'display: none'}),Builder.node('div',{id:'quicklook_panel_preview',style:'display: none'},"\u00A0")]);this.mask.hide();this.quicklook_panel.hide();d.body.appendChild(this.mask);d.body.appendChild(this.quicklook_panel);},preventWindowFromScrolling:function(e)
{var element=e.element();if(element&&element.id!='quicklook_panel_browser'){element=element.up('#quicklook_panel_browser');}
if(element&&element.id=='quicklook_panel_browser'){var delta=e.detail?e.detail:-(e.wheelDelta/40);if(element.scrollTop+delta<=0){e.stop();}
if((element.scrollTop+element.offsetHeight+delta)>=element.scrollHeight){e.stop();}}else{e.stop();}},showPreviewPanelForAttachment:function(button)
{this.render();this.mask.show();this.anchor=button;this.anchorPosition=Position.cumulativeOffset(this.anchor);var clickX=this.anchorPosition.left+25;var clickY=this.anchorPosition.top;var attachment=this.anchor.previous('img');if(attachment&&Object.isString(attachment.name)&&attachment.name.isJSON())
{var info=attachment.name.evalJSON();if(info){this.previewInfo=info;if(info.isMovie||info.isAudio){this.stashedDefaultPanelSize=this.defaultPanelSize;if(info.isMovie&&info.width&&info.height){this.isMovie=true;this.defaultPanelSize={'width':info.width+6,'height':info.height+63};}
else{this.isAudio=true;this.defaultPanelSize=this.defaultAudioPanelSize}}}}
var newPosition=this.calculateCenterPositionForDimensions({'width':this.defaultPanelSize.width,'height':this.defaultPanelSize.height});this.quicklook_panel.setStyle({'width':'0px','height':'0px','left':clickX+'px','top':clickY+'px','opacity':'0'});var newPanelProperties='height:'+this.defaultPanelSize.height+'px; width:'+this.defaultPanelSize.width+'px; left:'+newPosition.left+'px; top:'+newPosition.top+'px; opacity: 1;';var transition=new Effect.Transform([{'div#quicklook_panel':newPanelProperties}],{duration:this.animationDuration,afterFinish:this.showPreviewPanelAnimationDidFinish});this.quicklook_panel.show();transition.play();},showPreviewPanelAnimationDidFinish:function()
{if(this.stashedDefaultPanelSize)
this.updatePreviewPanelChildElementsAfterResize(this.quicklook_panel.getHeight()-6);Event.observe(this.mask,'mousedown',this.dismissPreviewPanel);$('quicklook_panel_title').show();$('quicklook_panel_close').show();$('quicklook_panel_loading').show();Event.observe(document,'keydown',this.handleWindowKeyboardEvent);Event.observe('quicklook_panel_close','mouseup',this.dismissPreviewPanel);Event.observe(window,'resize',this.centerPreviewPanel);Event.observe(window,'scroll',this.centerPreviewPanel);Event.observe(window,'mousewheel',this.preventWindowFromScrolling);Event.observe(window,'DOMMouseScroll',this.preventWindowFromScrolling);var attachmentPath=this.anchor.up().getAttribute('href');this.attachmentPath=attachmentPath;var attachmentUID=$A(attachmentPath.match(/attachments\/([\w]+)/g)).last();var pageUIDMatch=attachmentPath.match(/((?:users|groups)\/.*)\/attachments\//);var pageUID=uid().mValue;if(pageUIDMatch&&(pageUIDMatch.length>1))pageUID=pageUIDMatch[1];var gotProperties=function(request,response){var properties=$H(response);if(properties.get('status')=='working'){if(this.firstRequest==true){this.interval=2*this.interval;this.firstRequest=false;}
this.timer=setTimeout(function(){server()[uid().mService].getQuickLookPreviewPropertiesForAttachment([gotProperties.bind(this),gotError.bind(this)],pageUID,attachmentUID)}.bind(this),this.interval);}
else{if(this.timer){clearTimeout(this.timer);this.firstRequest=true;this.interval=this.interval/2;}
this.configurePreviewPanel(properties,attachmentPath);}}
var gotError=function(request,faultCode,faultString){alert((faultCode==20)?Loc.quicklook_generate_error:Loc.quicklook_general_error);this.dismissPreviewPanel();}
server()[uid().mService].getQuickLookPreviewPropertiesForAttachment([gotProperties.bind(this),gotError.bind(this)],pageUID,attachmentUID);},configurePreviewPanel:function(properties,attachmentPath)
{var quicklookPath=attachmentPath.sub(/\/[^\/]+\/?$/,'/QuickLook/');var previewExtension=properties.get('previewExtension');var shouldShowBrowser=false;this.previewPanelReady=false;if(this.previewInfo&&(this.previewInfo.isAudio||this.previewInfo.isMovie)){this.previewPanelReady=true;var mediaPath=quicklookPath+'Preview.'+previewExtension;var previewPanel=$('quicklook_panel_preview');previewPanel.setStyle({lineHeight:'normal'});if(this.previewInfo.isAudio){var media=Builder.node('div',{className:'media audio'},[Builder.node('div',{className:'artwork'})]);var audio=Builder.node('img',{className:'posterimg',alt:mediaPath,width:'258px',height:'16px'});Element.insert(media,{bottom:audio});Element.insert(previewPanel,{top:media});}
else{var media=Builder.node('div',{className:'media movie'});var movie=Builder.node('img',{className:'posterimg',alt:mediaPath,width:this.previewInfo.width,height:(this.previewInfo.height+16)});Element.insert(media,{top:movie});Element.insert(previewPanel,{top:media});}}
else{if(properties.get('paginated')==true){this.previewPanelReady=true;var browser=$('quicklook_panel_browser');var pageCount=properties.get('pageCount');for(pageIndex=1;pageIndex<=pageCount;pageIndex++){var imagePath=quicklookPath+'Thumbnail-'+pageIndex+'.'+previewExtension;var container=Builder.node('div',{className:'thumbnail'},[Builder.node('img',{src:imagePath}),Builder.node('div',{className:'paginationContainer'},[Builder.node('span',{className:'pagination'},String.format(Loc.quicklook_page_info,{'pageNumber':pageIndex,'pageCount':pageCount}))])]);container.observe('click',this.switchDisplayedPreview);if(pageIndex==1){container.addClassName('selected');container.down('span.pagination').show();}
Element.insert(browser,{bottom:container});}
$('quicklook_panel_preview').addClassName('paginated');shouldShowBrowser=true;}
var previewImagePath=quicklookPath
if(properties.get('paginated')==true){previewImagePath+='Preview-1.';}else{previewImagePath+='Preview.';}
previewImagePath+=previewExtension;var previewImage=new Image();var doneLoadingImage=function(){this.previewPanelReady=true;};if(!this.previewPanelReady)Element.observe(previewImage,'load',doneLoadingImage.bind(this));previewImage.src=previewImagePath;var previewImage=Builder.node('img',{src:previewImagePath,id:'quicklook_now_showing'});if(properties.get('pageCount')>1){previewImage.addClassName('paginated');}
var previewPanel=$('quicklook_panel_preview');Element.insert(previewPanel,{top:previewImage});}
var attachmentName=attachmentPath.match(/([^\/]+)$/)[1];var iconPath=quicklookPath+'Icon.png';var attachmentTitle=Builder.node('h3',{className:'title'},[Builder.node('img',{className:'icon',src:iconPath}),unescape(attachmentName)]);var titlePanel=$('quicklook_panel_title');titlePanel.appendChild(attachmentTitle);if(!this.isAudio)
this.makePreviewPanelResizeable();if(!this.isAudio&&!this.isMovie)
this.renderRolloverControls();this.makePreviewPanable();var showPreviewAfterLoading=function(){if(!this.previewPanelReady){this.showPreviewPanelTimer=setTimeout(showPreviewAfterLoading,this.preloadingDelay);return;}
var loading=$('quicklook_panel_loading');if(loading)loading.hide();var browser=$('quicklook_panel_browser');if(browser&&shouldShowBrowser==true)browser.show();var panel=$('quicklook_panel_preview')
if(panel)panel.show();if(this.isMovie||this.isAudio){var posterimg=panel.down('img.posterimg');if(posterimg)qtMediaExpander().expandMedia(posterimg,"#C8C8C8");this.resizeMediaPreview();}
publisher().publish('QUICKLOOK_DID_SHOW_PANEL',this);}.bind(this);this.showPreviewPanelTimer=setTimeout(showPreviewAfterLoading,this.preloadingDelay);},switchDisplayedPreview:function(event)
{var newContainer=event.findElement('div.thumbnail');var selectedThumbnail=newContainer.down('img');var oldContainer=$('quicklook_panel_browser').getElementsBySelector('div.thumbnail.selected')[0];var oldThumbnail=oldContainer.down('img');if(selectedThumbnail!=oldThumbnail){oldContainer.removeClassName('selected');newContainer.addClassName('selected');var pageIndex=selectedThumbnail.src.match(/Thumbnail-(\d+)/).last();var baseName=selectedThumbnail.src.match(/(.+)\/.+/).last()
var newPath=baseName+'/Preview-'+pageIndex+'.png';var displayedImage=new Image();var hud=$('quicklook_hud_rollover');this.displayedImageHasLoaded=false;this.canHidePreloadingSpinner=false;this.preloadingTimer=setTimeout(function(){setTimeout(function(){this.canHidePreloadingSpinner=true;if(this.displayedImageHasLoaded)
hud.removeClassName('preloading');}.bind(this),this.preloadingDelay);hud.addClassName('preloading');}.bind(this),this.preloadingDelay);var doneLoadingImage=function(){if(this.preloadingTimer)clearTimeout(this.preloadingTimer);this.displayedImageHasLoaded=true;if(this.canHidePreloadingSpinner)hud.removeClassName('preloading');$('quicklook_now_showing').src=displayedImage.src;this.switchPannedImage(displayedImage.src);}
Event.observe(displayedImage,'load',doneLoadingImage.bind(this));displayedImage.src=newPath;}},updatePreviewPanelChildElementsAfterResize:function(newPreviewPanelHeight)
{var newContentHeight=newPreviewPanelHeight-27+'px';var loading=$('quicklook_panel_loading');if(loading)loading.setStyle({'height':newContentHeight});$('quicklook_panel_browser').setStyle({'height':newContentHeight});$('quicklook_panel_preview').setStyle({'height':newContentHeight,lineHeight:((this.isAudio||this.isMovie)?'normal':newContentHeight)});var pan=$('quicklook_pan_canvas');if(pan)pan.setStyle({'height':newContentHeight});var hud=$('quicklook_hud_rollover');if(hud)hud.setStyle({'height':newContentHeight});this.resizeMediaPreview();},resizeMediaPreview:function()
{var preview=$('quicklook_panel_preview');var media=preview.down('.media');if(media){var newWidth=preview.getWidth()-6;var newHeight=(media.hasClassName('audio')?16:preview.getHeight()-19);var qtmedia=media.down('.qtmedia');if(qtmedia){qtmedia.setStyle({'width':newWidth+'px','height':newHeight+'px'});}
var mediaChildren=media.getElementsBySelector('embed, object');mediaChildren.each(function(mediaChild){mediaChild.width=newWidth;mediaChild.height=newHeight;});}},resize:function(position)
{if(!position.width||!position.height||!position.left||!position.top)return true;this.quicklook_panel.setStyle({'width':position.width+'px','height':position.height+'px','left':position.left+'px','top':position.top+'px'});this.updatePreviewPanelChildElementsAfterResize(position.height);publisher().publish('QUICKLOOK_DID_RESIZE_PANEL',this);},centerPreviewPanel:function()
{if(this.fullScreenMode){this.resize(this.calculateFullScreenWidthHeightLeftTop());var preview=$('quicklook_panel_preview').down('img');if(!preview)return true;this.switchPannedImage(preview.src);if(this.stashedPreviousPosition){var updatedTopLeft=this.calculateCenterPositionForDimensions(this.stashedPreviousPosition);this.stashedPreviousPosition.top=updatedTopLeft.top;this.stashedPreviousPosition.left=updatedTopLeft.left;}
return true;}
var dimensions=this.quicklook_panel.getDimensions();dimensions.width-=6;dimensions.height-=6;var pos=this.calculateCenterPositionForDimensions(dimensions);this.quicklook_panel.setStyle({'left':pos.left+'px','top':pos.top+'px'});},calculateCenterPositionForDimensions:function(dimensions)
{if(!dimensions.width||!dimensions.height)return true;var newLeft=(d.viewport.getWidth()/2)-(dimensions.width/2);var newTop=((d.viewport.getHeight()/2)+d.viewport.getScrollOffsets().top)-(dimensions.height/2);if(newLeft<this.fullScreenBoundary)newLeft=this.fullScreenBoundary;if(newTop<this.fullScreenBoundary)newTop=this.fullScreenBoundary;return{'left':newLeft,'top':newTop};},dismissPreviewPanel:function(event)
{event.stop();Event.stopObserving(document,'keydown',this.handleWindowKeyboardEvent);Event.stopObserving(window,'resize',this.centerPreviewPanel);Event.stopObserving(window,'scroll',this.centerPreviewPanel);Event.stopObserving(window,'mousewheel',this.preventWindowFromScrolling);Event.stopObserving(window,'DOMMouseScroll',this.preventWindowFromScrolling);var loading=$('quicklook_panel_loading');if(loading)loading.remove();var browser=$('quicklook_panel_browser');if(browser)browser.remove();var preview=$('quicklook_panel_preview');if(preview)preview.remove();var title=$('quicklook_panel_title');if(title)title.remove();var close=$('quicklook_panel_close');if(close)close.remove();var rollover=$('quicklook_hud_rollover');if(rollover)rollover.remove();var newLeft=this.anchorPosition.left+25;var newTop=this.anchorPosition.top;var newPanelProperties='height: 0px; width: 0px; left:'+newLeft+'px; top:'+newTop+'px; opacity: 0;';var transition=new Effect.Transform([{'div#quicklook_panel':newPanelProperties}],{duration:this.animationDuration,afterFinish:this.dismissPreviewPanelAnimationDidFinish});transition.play();},dismissPreviewPanelAnimationDidFinish:function()
{this.quicklook_panel.remove();this.mask.remove();if(this.stashedDefaultPanelSize)
this.defaultPanelSize=this.stashedDefaultPanelSize;if(this.previewInfo)
delete this.previewInfo;this.isMovie=false;this.isAudio=false;this.fullScreenMode=false;publisher().publish('QUICKLOOK_DID_HIDE_PANEL',this);},makePreviewPanelResizeable:function()
{var resizeHandle=Builder.node('div',{id:'quicklook_resizehandle'});resizeHandle.observe('mousedown',this.handleResizeWidgetMouseDown);this.quicklook_panel.insert(resizeHandle);},handleResizeWidgetMouseDown:function(event)
{event.stop();var dragcanvas=Builder.node('div',{id:'quicklook_dragcanvas'});var dragoutline=Builder.node('div',{id:'quicklook_dragoutline'});Element.insert(this.quicklook_panel,{after:dragcanvas});Element.insert(this.quicklook_panel,{after:dragoutline});dragoutline.setStyle({'width':this.quicklook_panel.getStyle('width'),'height':this.quicklook_panel.getStyle('height'),'left':this.quicklook_panel.getStyle('left'),'top':this.quicklook_panel.getStyle('top')});var offset=Element.cumulativeOffset(this.quicklook_panel);this.start.x=offset.left+this.quicklook_panel.getWidth();this.start.y=offset.top+this.quicklook_panel.getHeight();dragcanvas.observe('mousemove',this.handleResizeWidgetMouseDrag);Event.observe(document,'mouseup',this.handleResizeWidgetEndMouseDrag);Event.stopObserving(document,'keydown',this.handleWindowKeyboardEvent);},handleResizeWidgetMouseDrag:function(event)
{event.stop();var dragoutline=$('quicklook_dragoutline');var oldPosition={'left':Position.cumulativeOffset(dragoutline).left,'top':Position.cumulativeOffset(dragoutline).top,'width':dragoutline.getWidth(),'height':dragoutline.getHeight()};var delta={'x':event.pointerX()-this.start.x,'y':event.pointerY()-this.start.y};var newWidth=oldPosition.width+delta.x;var widthScaleFactor=newWidth/this.defaultPanelSize.width;var newHeight=Math.round(this.defaultPanelSize.height*widthScaleFactor);if(newWidth<this.defaultPanelSize.width){newWidth=this.defaultPanelSize.width;newHeight=this.defaultPanelSize.height;}
if(newWidth>(d.viewport.getWidth()-(2*this.fullScreenBoundary)))return;if(newHeight>(d.viewport.getHeight()-(2*this.fullScreenBoundary)))return;var newLeft=(d.viewport.getWidth()/2)-(newWidth/2);var newTop=((d.viewport.getHeight()/2)+d.viewport.getScrollOffsets().top)-(newHeight/2);dragoutline.setStyle({'width':newWidth+'px','left':newLeft+'px','height':newHeight+'px','top':newTop+'px'});this.start.x=newLeft+newWidth;this.start.y=newTop+newHeight;},handleResizeWidgetEndMouseDrag:function(event)
{event.stop();var dragcanvas=$('quicklook_dragcanvas');if(!dragcanvas)return true;Element.remove(dragcanvas);var dragoutline=$('quicklook_dragoutline');if(!dragoutline)return true;this.quicklook_panel.setStyle({'width':dragoutline.getStyle('width'),'height':dragoutline.getStyle('height'),'left':dragoutline.getStyle('left'),'top':dragoutline.getStyle('top')});this.updatePreviewPanelChildElementsAfterResize(parseInt(dragoutline.getStyle('height')));dragoutline.remove();Element.stopObserving(document,'mouseup',this.handleResizeWidgetEndMouseDrag);Event.observe(document,'keydown',this.handleWindowKeyboardEvent);},calculateFullScreenWidthHeightLeftTop:function()
{var maxWidth=(d.viewport.getWidth()-(2*this.fullScreenBoundary));var maxHeight=(d.viewport.getHeight()-(2*this.fullScreenBoundary));if(maxWidth<this.defaultPanelSize.width)maxWidth=this.defaultPanelSize.width;if(maxHeight<this.defaultPanelSize.height)maxHeight=this.defaultPanelSize.height;var newWidth=maxWidth;var newHeight=maxHeight;if(maxWidth<=maxHeight){var widthScaleFactor=newWidth/this.defaultPanelSize.width;newHeight=Math.round(this.defaultPanelSize.height*widthScaleFactor);if(newHeight>maxHeight){newHeight=maxHeight;widthScaleFactor=newHeight/this.defaultPanelSize.height;newWidth=Math.round(this.defaultPanelSize.width*widthScaleFactor);}}
else{var heightScaleFactor=newHeight/this.defaultPanelSize.height;newWidth=Math.round(this.defaultPanelSize.width*heightScaleFactor);if(newWidth>maxWidth){newWidth=maxWidth;widthScaleFactor=newWidth/this.defaultPanelSize.width;newHeight=Math.round(this.defaultPanelSize.height*widthScaleFactor);}}
var newLeft=(d.viewport.getWidth()/2)-(newWidth/2);var newTop=((d.viewport.getHeight()/2)+d.viewport.getScrollOffsets().top)-(newHeight/2);if(newLeft<this.fullScreenBoundary)newLeft=this.fullScreenBoundary;if(newTop<this.fullScreenBoundary)newTop=this.fullScreenBoundary;return{'width':newWidth,'height':newHeight,'left':newLeft,'top':newTop};},renderRolloverControls:function()
{var rollover=Builder.node('div',{id:'quicklook_hud_rollover'},[Builder.node('div',{id:'quicklook_hud'},[Builder.node('a',{id:'quicklook_hud_scale',className:'fullscreen'}),Builder.node('a',{id:'quicklook_hud_download',href:this.attachmentPath,className:'download'}),Builder.node('a',{id:'quicklook_hud_close',className:'close'})])]);$('quicklook_panel_preview').insert(rollover);$('quicklook_hud_scale').observe('mousedown',this.toggleFullScreenMode);$('quicklook_hud_close').observe('mousedown',this.dismissPreviewPanel);$('quicklook_hud_download').observe('click',this.handleAttachmentDownloadClick);},toggleFullScreenMode:function(event)
{event.stop();var btn=event.findElement('a');if(btn.hasClassName('disabled'))return true;if(btn.hasClassName('fitscreen')){if(this.stashedPreviousPosition){this.resize(this.stashedPreviousPosition);delete this.stashedPreviousPosition;}
$('quicklook_hud_scale').removeClassName('fitscreen');$('quicklook_hud_scale').addClassName('fullscreen');$('quicklook_pan_canvas').remove();$('quicklook_resizehandle').show();$('quicklook_hud_rollover').removeClassName('panning');this.fullScreenMode=false;publisher().publish('QUICKLOOK_DID_LEAVE_FULLSCREEN',this);}
else{this.stashedPreviousPosition={'width':parseInt(this.quicklook_panel.getStyle('width')),'height':parseInt(this.quicklook_panel.getStyle('height')),'left':parseInt(this.quicklook_panel.getStyle('left')),'top':parseInt(this.quicklook_panel.getStyle('top'))}
this.resize(this.calculateFullScreenWidthHeightLeftTop());$('quicklook_resizehandle').hide();var pan=Builder.node('div',{id:'quicklook_pan_canvas'});pan.setStyle({'height':$('quicklook_panel_preview').getStyle('height')});$('quicklook_panel_preview').insert(pan);var previewImage=$('quicklook_panel_preview').down('img');this.switchPannedImage(previewImage.src);this.fullScreenMode=true;publisher().publish('QUICKLOOK_DID_ENTER_FULLSCREEN',this);}},makePreviewPanable:function()
{var currentImage=$('quicklook_now_showing');if(!currentImage||!currentImage.src)return true
var previewImage=Element.extend(new Image());var callback=function(){var expandButton=$('quicklook_hud_scale');if(!expandButton)return true;var panX=previewImage.width>this.defaultPanelSize.width;var panY=previewImage.height>this.defaultPanelSize.height;if(panX||panY){expandButton.removeClassName('disabled')}
else{expandButton.addClassName('disabled');$('quicklook_resizehandle').remove();}};previewImage.observe('load',callback.bind(this));previewImage.src=currentImage.src;},switchPannedImage:function(src)
{if(!$('quicklook_pan_canvas'))return;this.pannedPreviewPosition.x=0;this.pannedPreviewPosition.y=0;var panableImage=new Image();var doneLoadingImage=function(){this.pannedImageDimensions={'width':panableImage.width,'height':panableImage.height};var pan=$('quicklook_pan_canvas');pan.setStyle({'backgroundImage':'url('+panableImage.src+')'});if(pan.getWidth()>panableImage.width)
this.pannedPreviewPosition.x=(pan.getWidth()-panableImage.width)/2;if(pan.getHeight()>panableImage.height)
this.pannedPreviewPosition.y=(pan.getHeight()-panableImage.height)/2;pan.setStyle({'backgroundPosition':this.pannedPreviewPosition.x+"px "+this.pannedPreviewPosition.y+"px"});var hud=$('quicklook_hud_rollover');hud.observe('mousedown',this.handlePreviewPanMouseDown);hud.addClassName('panning');$('quicklook_hud_scale').removeClassName('fullscreen');$('quicklook_hud_scale').addClassName('fitscreen');}
Event.observe(panableImage,'load',doneLoadingImage.bind(this));panableImage.src=src;},handleAttachmentDownloadClick:function(event)
{publisher().publish('QUICKLOOK_DID_DOWNLOAD_ATTACHMENT',this,{src:this.attachmentPath});},handlePreviewPanMouseDown:function(event)
{event.stop();this.start.x=event.pointerX();this.start.y=event.pointerY();var hud=$('quicklook_hud_rollover');Event.observe(hud,'mousemove',this.handlePreviewPanMouseDrag);Event.observe(document,'mouseup',this.handlePreviewPanMouseEndDrag);$('quicklook_hud_rollover').addClassName('gesture');},handlePreviewPanMouseDrag:function(event)
{event.stop();var hud=$('quicklook_hud_rollover');var pan=$('quicklook_pan_canvas');var trackPoint={'x':event.pointerX(),'y':event.pointerY()};var delta={'x':(trackPoint.x-this.start.x),'y':(trackPoint.y-this.start.y)};var offset={'x':(this.pannedPreviewPosition.x+delta.x),'y':(this.pannedPreviewPosition.y+delta.y)};if(offset.x>0)offset.x=0;if(offset.y>0)offset.y=0;var maxHorizontalOffset=pan.getWidth()-this.pannedImageDimensions.width;if(offset.x<maxHorizontalOffset)offset.x=maxHorizontalOffset;var maxVerticalOffset=pan.getHeight()-this.pannedImageDimensions.height;if(offset.y<maxVerticalOffset)offset.y=maxVerticalOffset;if(this.pannedImageDimensions.width<pan.getWidth())offset.x=this.pannedPreviewPosition.x;if(this.pannedImageDimensions.height<pan.getHeight())offset.y=this.pannedPreviewPosition.y;pan.setStyle({'backgroundPosition':offset.x+"px "+offset.y+"px"});this.pannedPreviewPosition.x=offset.x;this.pannedPreviewPosition.y=offset.y;this.start.x=trackPoint.x;this.start.y=trackPoint.y;},handlePreviewPanMouseEndDrag:function(event)
{event.stop();var hud=$('quicklook_hud_rollover');if(hud)hud.stopObserving('mousemove',this.handlePreviewPanMouseDrag);Event.stopObserving(document,'mouseup',this.handlePreviewPanMouseEndDrag);$('quicklook_hud_rollover').removeClassName('gesture');publisher().publish('QUICKLOOK_DID_PAN_PREVIEW',this);},handleWindowKeyboardEvent:function(inEvent)
{if(inEvent.keyCode==Event.KEY_ESC||inEvent.keyCode==32){this.dismissPreviewPanel(inEvent);}}}
if(window.loaded)loaded('quicklook.js');