blob: 13c054db67d706db515f7c902ba21a3e0f128b39 [file] [log] [blame]
AJS.log("page-editor starting");AJS.Editor=(function($){return{lastEditMode:null,lastKnownGoodContent:null,contentHasChangedSinceLastAutoSave:false,isDraftSaved:false,originalWikiContent:"",syncTitleFieldWithForm:function(){var hiddenContentTitle=AJS.$("#hidden-content-title");if(hiddenContentTitle.length){var title="";var titleWrittenField=AJS.$("#titleWritten");if(!titleWrittenField.length||titleWrittenField.val()!="false"){title=AJS.$("#content-title").val()}hiddenContentTitle.val(title)}},isSubmitting:false,isUnloaded:false,hasContentChanged:function(){var rte=AJS.params.useWysiwyg&&this.inRichTextMode();if(!rte&&!this.contentHasChangedSinceLastAutoSave){return false}return this.editorHasContentChanged(rte)},editorHasContentChanged:function(isRTEMode){if(isRTEMode){return this.Adapter.editorHasContentChanged()}return this.originalWikiContent!=this.getCurrentFormContent()},saveDraft:function(options){var defaults={async:true};if(typeof options=="boolean"){options={async:options}}else{if(typeof options=="number"){options=defaults}else{options=AJS.$.extend({},defaults,options)}}if(!AJS.params.saveDrafts||AJS.Editor.isSubmitting||(!options.forceSave&&!AJS.Editor.hasContentChanged())){return}AJS.Editor.syncTitleFieldWithForm();var form=AJS.Editor.getCurrentForm();var draftData={pageId:AJS.params.pageId,type:AJS.params.draftType,title:AJS.$("#hidden-content-title").val(),content:AJS.Editor.getCurrentFormContent()};var newSpaceKey=AJS.$("#newSpaceKey");if(newSpaceKey.length){draftData.spaceKey=newSpaceKey.val()}else{draftData.spaceKey=encodeURIComponent(AJS.params.spaceKey)}var originalVersion=AJS.$("#originalVersion");if(originalVersion.length){draftData.pageVersion=parseInt(originalVersion.val(),10)}var draftStatus=AJS.$("#draft-status");var resetWysiwygContent=AJS.params.useWysiwyg&&AJS.Editor.inRichTextMode();var jsTime=function(date){var h=date.getHours();var m=date.getMinutes();var ampm=h>11?"PM":"AM";h=h%12;return(h==0?"12":h)+":"+(m<10?"0":"")+m+" "+ampm};var saveDraftCallback=function(response){AJS.Editor.contentHasChangedSinceLastAutoSave=false;if(resetWysiwygContent){AJS.Editor.Adapter.editorResetContentChanged()}if(response.success){AJS.Editor.isDraftSaved=true;var detail={};try{detail=eval("("+response.response+")")}catch(e){}var time=detail.time||jsTime(new Date());draftStatus.removeClass("error");if(AJS.params.newPage){draftStatus.html(AJS.format("Draft saved at {0}",time))}else{draftStatus.html(AJS.format("Draft saved at {0} ({1}view change{2})",time,"<a id='view-diff-link-heartbeat' class='view-diff-link' href=#>","</a>"))}if(!AJS.params.contentId||AJS.params.contentId==="0"){AJS.params.contentId=detail.draftId}if(AJS.$.isFunction(options.onSuccessHandler)){options.onSuccessHandler(detail,AJS.params.newPage)}}else{draftStatus.addClass("error");draftStatus.html(response.response);if(AJS.$.isFunction(options.onErrorHandler)){options.onErrorHandler(response.response)}}};draftStatus.html("Saving draft&hellip;");draftData.xhtml=(form.xhtml.value=="true");AJS.safe.ajax({type:"POST",url:AJS.params.contextPath+"/json/savedraft.action",data:draftData,success:saveDraftCallback,error:function(){saveDraftCallback({success:false,response:"Draft saving timed out"})},dataType:"json",timeout:30000})},sendFormDraft:function(flagName){this.handleBeforeUnload=function(){};var form=this.getCurrentForm();this.addHiddenElement(form,flagName,"true");this.addHiddenElement(form,"contentChanged",""+this.hasContentChanged());this.addHiddenElement(form,"pageId",AJS.params.pageId);if(!form.spaceKey){this.addHiddenElement(form,"spaceKey",AJS.params.spaceKey)}form.action=(AJS.params.newPage?"create":"edit")+AJS.params.draftType+".action";form.submit()},getResumeDraftUrl:function(){var urlParts=[];urlParts.push(contextPath);urlParts.push("/pages/"+(AJS.params.newPage?"create":"edit")+AJS.params.draftType+".action");urlParts.push("?useDraft=true");urlParts.push("&pageId="+AJS.params.pageId);urlParts.push("&contentChanged="+this.hasContentChanged());this.getCurrentForm().spaceKey&&urlParts.push("&spaceKey="+AJS.params.spaceKey);return urlParts.join("")},addHiddenElement:function(form,name,value){var el=document.createElement("input");el.type="hidden";el.name=name;el.value=value;form.appendChild(el)},getCurrentFormContent:function(){var form=this.getCurrentForm();if(AJS.params.useWysiwyg&&form.xhtml.value=="true"){return this.Adapter.getEditorHTML()}if(form.markupTextarea){return form.markupTextarea.value}},getCurrentTitle:function(){return $("#content-title")&&$("#content-title").val()},contentFormSubmit:function(e){this.handleBeforeUnload=function(){};this.syncTitleFieldWithForm();AJS.$("#locationShowing").val(""+AJS.isVisible("#location_div"));AJS.$("#labelsShowing").val(""+AJS.isVisible("#labels_div"));AJS.$(".editable-title #content-title").attr("disabled","disabled");this.isSubmitting=this.checkCaptchaResponse(e);return this.isSubmitting},checkCaptchaResponse:function(e){if(e.target.name=="cancel"){return true}var captchaTextField=AJS.$("#captchaResponse");if(captchaTextField.val()==""){AJS.$("#captchaError").css("display","block");window.scroll(0,0);e.stopPropagation();return false}return true},heartbeat:function(){var data={dataType:"json",contentId:AJS.params.pageId,draftType:AJS.params.draftType};if(AJS.params.pageId=="0"||AJS.params.contentType=="comment"){AJS.safe.post(AJS.params.contextPath+"/json/heartbeat.action",{})}else{AJS.safe.post(AJS.params.contextPath+"/json/startheartbeatactivity.action",data,function(activityResponses){var otherUsersAreEditing=activityResponses.length;if(otherUsersAreEditing){var outerSpan=AJS.$("#other-users-span");outerSpan.empty();for(var i=0;i<otherUsersAreEditing;++i){if(i>0){outerSpan.append(", ")}var activityResponse=activityResponses[i];outerSpan.append(AJS("a").attr("href",AJS.params.contextPath+"/display/~"+encodeURIComponent(activityResponse.userName)).text(activityResponse.fullName));if(activityResponse.lastEditMessage!=null){outerSpan.append(" ").append(AJS("span").addClass("smalltext").text(activityResponse.lastEditMessage))}}}AJS.setVisible("#heartbeat-div",!!otherUsersAreEditing)},"json")}},disableFrame:function(body){AJS.$("form",body).each(function(){AJS.$(this).unbind();this.onsubmit=function(){return false}});AJS.$("a",body).each(function(){AJS.$(this).attr("target","_top").unbind()});AJS.$("input",body).each(function(){AJS.$(this).unbind()})},previewFrameOnload:function(body,iframe){AJS.Editor.disableFrame(body);var $iframe=AJS.$(iframe||"#previewArea iframe"),prevHeight=0,counter=0,content=AJS.$("#main",body)[0],originalHeight=$iframe.height();content&&(function(){var height=content.scrollHeight;if(prevHeight!=height){if(height!=$iframe.height()){$iframe.height(Math.max(height,originalHeight))}prevHeight=height;counter=0}else{counter++}if(counter<500){setTimeout(arguments.callee,500)}})()},showRichText:function(show){if(!AJS.params.useWysiwyg){return}AJS.setVisible("#wysiwyg",show);AJS.setCurrent("#wysiwygTab",show);if(show){this.Adapter.onShowEditor();this.lastKnownGoodContent=null;AJS.$("#main").addClass("active-richtext")}else{this.Adapter.onHideEditor();AJS.$("#main").removeClass("active-richtext")}},showMarkup:function(show){var form=this.getCurrentForm(),fname1=(show?"removeClass":"addClass"),fname2=(show?"addClass":"removeClass");AJS.$("#markup")[fname1]("hidden");AJS.$("#markupTab")[fname2]("current");AJS.$("#sidebar")[fname1]("hidden");AJS.$("#addcomment-sidebar")[fname1]("hidden");AJS.$(form)[fname2]("markup");AJS.$("#linkinserters")[fname1]("hidden");AJS.$("#main")[fname2]("active-wikimarkup")},showPreview:function(show){var fname1=(show?"removeClass":"addClass"),fname2=(show?"addClass":"removeClass");AJS.$("#preview")[fname1]("hidden");AJS.$("#previewTab")[fname2]("current");AJS.$("#main")[fname2]("active-preview")},setMode:function(mode){var wasRichText=this.inRichTextMode();var form=this.getCurrentForm();if(mode!=AJS.params.actionPreview){AJS.$("input[name=xhtml]",this.getCurrentForm()).val(mode==AJS.params.actionRichtext)}if(AJS.params.remoteUser&&AJS.params.useWysiwyg){this.showDefaultEditorLinks(mode)}if(mode==AJS.params.actionRichtext){this.showMarkup(false);this.showRichText(true);this.showPreview(false)}else{if(mode==AJS.params.actionMarkup){this.showMarkup(true);this.showRichText(false);this.showPreview(false);if($.browser.msie&&$.browser.version.charAt()==8){var wikiMarkupElement=AJS.$("#markup");AJS.$("#markupTextarea").width(wikiMarkupElement.width()).height(wikiMarkupElement.height())}}else{if(mode==AJS.params.actionPreview){if(wasRichText){this.lastKnownGoodContent=this.Adapter.getEditorHTML()}this.showPreview(true);this.showRichText(false);this.showMarkup(false)}}}AJS.$("input[name=mode]",form).val(mode)},getContentId:function(){if(+AJS.params.contentId){return AJS.params.contentId}if(+AJS.params.pageId){return AJS.params.pageId}return"0"},changeMode:function(newMode){if(AJS.params.useWysiwyg&&this.inRichTextMode()&&!AJS.Editor.Adapter.allowModeChange()){return false}var oldMode=AJS.$("input[name=mode]",this.getCurrentForm()).val();if(oldMode==newMode){return false}this.showWaitImage(true);if(AJS.params.saveDrafts){var async=(AJS.params.contentId==="0"?false:true);this.saveDraft(async)}var contentId=this.getContentId();if(newMode==AJS.params.actionMarkup){if(oldMode==AJS.params.actionPreview){if(AJS.Editor.lastEditMode==AJS.params.actionMarkup){this.replysetTextArea(null)}else{AJS.safe.post(AJS.params.contextPath+"/json/convertxhtmltowikimarkupwithoutpage.action",{pageId:contentId,xhtml:AJS.Editor.lastKnownGoodContent},this.replysetTextArea,"json")}}else{AJS.safe.post(AJS.params.contextPath+"/json/convertxhtmltowikimarkupwithoutpage.action",{pageId:contentId,xhtml:AJS.Editor.Adapter.getEditorHTML()},this.replysetTextArea,"json")}}else{if(newMode==AJS.params.actionRichtext){if(oldMode==AJS.params.actionPreview&&AJS.Editor.lastEditMode==AJS.params.actionRichtext){this.replysetEditorValue(null)}else{AJS.safe.post(AJS.params.contextPath+"/json/convertwikimarkuptoxhtmlwithoutpagewithspacekey.action",{pageId:contentId,spaceKey:AJS.params.spaceKey,wikiMarkup:AJS.$("#markupTextarea").val()},this.replysetEditorValue,"json")}}else{var queryParams={contentId:contentId,contentType:AJS.params.contentType,spaceKey:AJS.params.spaceKey};if(oldMode==AJS.params.actionRichtext){AJS.Editor.lastEditMode=AJS.params.actionRichtext;AJS.Editor.lastKnownGoodContent=queryParams.xHtml=AJS.Editor.Adapter.getEditorHTML()}else{AJS.Editor.lastEditMode=AJS.params.actionMarkup;queryParams.wikiMarkup=AJS.$("#markupTextarea").val()}AJS.$.post(AJS.params.contextPath+"/pages/rendercontent.action",queryParams,AJS.Editor.replysetPreviewArea)}}return false},showWaitImage:function(flag){AJS.$("#wysiwygWaitImage").css("visibility",(flag?"visible":"hidden"))},replysetTextArea:function(s){if(s!=null){AJS.$("#markupTextarea").val(s);if(AJS.params.saveDrafts){AJS.Editor.originalWikiContent=s}}AJS.Editor.setMode(AJS.params.actionMarkup);AJS.Editor.showWaitImage(false)},replysetEditorValue:function(s){AJS.Editor.showWaitImage(false);AJS.Editor.setMode(AJS.params.actionRichtext);AJS.Editor.Adapter.setEditorValue(s)},replysetPreviewArea:function(html){AJS.Editor.showWaitImage(false);AJS.Editor.setMode(AJS.params.actionPreview);var src=AJS.params.staticResourceUrlPrefix+"/blank.html";AJS.$("#previewArea").html('<iframe src="'+src+'" scrolling="no" frameborder="0"></iframe>');var iframe=AJS.$("#previewArea iframe")[0];var doc=iframe.contentDocument||iframe.contentWindow.document;doc.write(html);doc.close()},inRichTextMode:function(){return AJS.$("input[name=mode]",this.getCurrentForm()).val()==AJS.params.actionRichtext},onInit:function(){AJS.Editor.setMode(AJS.params.editorMode)},handleUnload:function(){if(AJS.Editor.isUnloaded){return}AJS.Editor.isUnloaded=true;if(AJS.params.saveDrafts){AJS.Editor.saveDraft(false)}},handleBeforeUnload:function(){if(typeof seleniumAlert!="undefined"){return}if(AJS.Editor.hasContentChanged()){if(AJS.params.saveDrafts){return "A draft will be saved and will be accessible from the \'Drafts\' page."}return "Your comment will be lost."}else{if(AJS.Editor.isDraftSaved){return "A draft will be saved and will be accessible from the \'Drafts\' page."}}},storeTextareaBits:function(doNotFocus){return AJS.Editor.Markup.storeTextareaBits(this.getCurrentForm(),AJS.$("#markupTextarea")[0],doNotFocus)},setRichTextDefault:function(value){AJS.safe.post(AJS.params.contextPath+"/json/setpreferenceusereditwysiwyg.action",{useWysiwyg:value},function(){},"json");AJS.Editor.editorPreference=(value?AJS.params.actionRichtext:AJS.params.actionMarkup);AJS.$("#makeRichTextDefault").addClass("hidden");AJS.$("#makeMarkupDefault").addClass("hidden")},showDefaultEditorLinks:function(currentMode){var defaultIsWysiwyg=(AJS.Editor.editorPreference==AJS.params.actionRichtext);var showRichTextDefault,showMarkupDefault=false;if(defaultIsWysiwyg&&currentMode==AJS.params.actionMarkup){showMarkupDefault=true}else{if(!defaultIsWysiwyg&&currentMode==AJS.params.actionRichtext){showRichTextDefault=true}}AJS.$("#makeRichTextDefault")[showRichTextDefault?"removeClass":"addClass"]("hidden");AJS.$("#makeMarkupDefault")[showMarkupDefault?"removeClass":"addClass"]("hidden")},contentChangeHandler:function(){this.contentHasChangedSinceLastAutoSave=true},getCurrentForm:function(){return AJS.$("form[name="+AJS.params.formName+"]")[0]},openMacroBrowser:function(e){var t=AJS.Editor,mb=AJS.MacroBrowser,textarea=$("#markupTextarea");var range=t.Markup.selection=textarea.selectionRange();t.Markup.scrollTop=textarea.scrollTop();var selectedMacro=mb.getSelectedMacro(range.textBefore,textarea.val());mb.open({markupMode:true,selectedMacro:selectedMacro,selectedMarkup:range.text,onComplete:AJS.Editor.macroBrowserComplete,onCancel:AJS.Editor.macroBrowserCancel});return AJS.stopEvent(e)},macroBrowserComplete:function(macro){var t=AJS.Editor,textarea=$("#markupTextarea"),m=AJS.MacroBrowser.settings.selectedMacro;if(m){textarea.selectionRange(m.startIndex,m.startIndex+m.markup.length)}else{if(t.Markup.selection){textarea.selectionRange(t.Markup.selection.start,t.Markup.selection.end)}}textarea.selection(macro.markup);textarea.scrollTop(t.Markup.scrollTop)},macroBrowserCancel:function(){var t=AJS.Editor,textarea=$("#markupTextarea");if(t.Markup.selection){textarea.selectionRange(t.Markup.selection.start,t.Markup.selection.end)}textarea.scrollTop(t.Markup.scrollTop)}}})(AJS.$);AJS.toInit(function(f){AJS.log("page-editor initialising");AJS.Editor.editorPreference=AJS.params.editorMode;f("#wysiwygTab a:first").click(function(k){AJS.Editor.changeMode(AJS.params.actionRichtext);k.preventDefault()});f("#markupTab a:first").click(function(k){AJS.Editor.changeMode(AJS.params.actionMarkup);k.preventDefault()});f("#previewTab a:first").click(function(k){AJS.Editor.changeMode(AJS.params.actionPreview);k.preventDefault()});f("#makeRichTextDefault").click(function(k){AJS.Editor.setRichTextDefault(true);k.preventDefault()});f("#makeMarkupDefault").click(function(k){AJS.Editor.setRichTextDefault(false);k.preventDefault()});f("#editor-insert-macro").click(AJS.Editor.openMacroBrowser);f("#markupTextarea").select(function(){AJS.Editor.storeTextareaBits(true)}).keyup(function(k){AJS.Editor.contentChangeHandler();if(k.ctrlKey){if(k.keyCode==77){f("#editor-insert-image").click();return false}if(k.shiftKey&&k.keyCode==65){f("#editor-insert-macro").click();return false}}}).change(function(){AJS.Editor.contentChangeHandler()});f(".submit-buttons").click(function(k){AJS.Editor.contentFormSubmit(k)});f(".editor-template-link").click(function(l){var k=AJS.$("#createpageform")[0];if((AJS.Editor.hasContentChanged()||AJS.Editor.isDraftSaved)&&!confirm("Selecting a template will overwrite your existing changes.")){return}k.action="createpage-choosetemplate.action";AJS.Editor.contentFormSubmit(l);k.submit()});if(AJS.params.useWysiwyg){var i=function(k){AJS.Editor.showWaitImage(false)};AJS.Editor.Adapter.addOnInitCallback(AJS.Editor.onInit);AJS.Editor.Adapter.editorOnLoad()}f(window).bind("render-content-loaded",function(m,k){var l=f("#previewArea iframe");if(l.contents().find("body")[0]==k){AJS.Editor.previewFrameOnload(k,l)}});window.onbeforeunload=function(){return AJS.Editor.handleBeforeUnload()};if(AJS.params.saveDrafts){f(window).unload(AJS.Editor.handleUnload);f.getJSON(AJS.params.contextPath+"/json/getdraftsaveinterval.action",{},function(k){setInterval(AJS.Editor.saveDraft,k)})}if(AJS.params.heartbeat){AJS.Editor.heartbeat();f.getJSON(AJS.params.contextPath+"/json/getheartbeatinterval.action",{},function(k){setInterval(AJS.Editor.heartbeat,k)})}var j=f("#title-text");var h=f("#content-title");var g=f("#content-title-label");if(j.length&&h.length){var b=document.createElement("div");f(b).addClass("editable-title").append(g).append(h);if(!f.browser.msie){f(window).load(function(){var k=f("#title-heading img.logo");if(k.length&&k.css("display")!="none"){f(b).css("marginLeft",f("#title-heading img.logo").width()+10+"px")}else{f(b).css("marginLeft",0)}})}j.replaceWith(b);var d=f("#hidden-content-title");if(!d.length){var e=document.createElement("input");e.id="hidden-content-title";e.type="hidden";e.name="title";e=f(e);var a=f("#titleWritten");if(!a.length||a.val()!="false"){e.val(h.val())}var c=f("#wiki-editor");c.before(e)}}AJS.Editor.originalWikiContent=AJS.Editor.getCurrentFormContent()});
(function(b){b.fn.ajaxSubmit=function(s){if(!this.length){a("ajaxSubmit: skipping submit process - no element selected");return this}if(typeof s=="function"){s={success:s}}var e=b.trim(this.attr("action"));if(e){e=(e.match(/^([^#]+)/)||[])[1]}e=e||window.location.href||"";s=b.extend({url:e,type:this.attr("method")||"GET"},s||{});var u={};this.trigger("form-pre-serialize",[this,s,u]);if(u.veto){a("ajaxSubmit: submit vetoed via form-pre-serialize trigger");return this}if(s.beforeSerialize&&s.beforeSerialize(this,s)===false){a("ajaxSubmit: submit aborted via beforeSerialize callback");return this}var m=this.formToArray(s.semantic);if(s.data){s.extraData=s.data;for(var f in s.data){if(s.data[f] instanceof Array){for(var g in s.data[f]){m.push({name:f,value:s.data[f][g]})}}else{m.push({name:f,value:s.data[f]})}}}if(s.beforeSubmit&&s.beforeSubmit(m,this,s)===false){a("ajaxSubmit: submit aborted via beforeSubmit callback");return this}this.trigger("form-submit-validate",[m,this,s,u]);if(u.veto){a("ajaxSubmit: submit vetoed via form-submit-validate trigger");return this}var d=b.param(m);if(s.type.toUpperCase()=="GET"){s.url+=(s.url.indexOf("?")>=0?"&":"?")+d;s.data=null}else{s.data=d}var t=this,l=[];if(s.resetForm){l.push(function(){t.resetForm()})}if(s.clearForm){l.push(function(){t.clearForm()})}if(!s.dataType&&s.target){var p=s.success||function(){};l.push(function(j){b(s.target).html(j).each(p,arguments)})}else{if(s.success){l.push(s.success)}}s.success=function(q,k){for(var n=0,j=l.length;n<j;n++){l[n].apply(s,[q,k,t])}};var c=b("input:file",this).fieldValue();var r=false;for(var i=0;i<c.length;i++){if(c[i]){r=true}}var h=false;if(s.iframe||r||h){if(s.closeKeepAlive){b.get(s.closeKeepAlive,o)}else{o()}}else{b.ajax(s)}this.trigger("form-submit-notify",[this,s]);return this;function o(){var w=t[0];if(b(":input[name=submit]",w).length){alert('Error: Form elements must not be named "submit".');return}var q=b.extend({},b.ajaxSettings,s);var G=b.extend(true,{},b.extend(true,{},b.ajaxSettings),q);var v="jqFormIO"+(new Date().getTime());var C=b('<iframe id="'+v+'" name="'+v+'" src="about:blank" />');var E=C[0];C.css({position:"absolute",top:"-1000px",left:"-1000px"});var F={aborted:0,responseText:null,responseXML:null,status:0,statusText:"n/a",getAllResponseHeaders:function(){},getResponseHeader:function(){},setRequestHeader:function(){},abort:function(){this.aborted=1;C.attr("src","about:blank")}};var D=q.global;if(D&&!b.active++){b.event.trigger("ajaxStart")}if(D){b.event.trigger("ajaxSend",[F,q])}if(G.beforeSend&&G.beforeSend(F,G)===false){G.global&&b.active--;return}if(F.aborted){return}var k=0;var z=0;var j=w.clk;if(j){var x=j.name;if(x&&!j.disabled){s.extraData=s.extraData||{};s.extraData[x]=j.value;if(j.type=="image"){s.extraData[name+".x"]=w.clk_x;s.extraData[name+".y"]=w.clk_y}}}setTimeout(function(){var J=t.attr("target"),H=t.attr("action");w.setAttribute("target",v);if(w.getAttribute("method")!="POST"){w.setAttribute("method","POST")}if(w.getAttribute("action")!=q.url){w.setAttribute("action",q.url)}if(!s.skipEncodingOverride){t.attr({encoding:"multipart/form-data",enctype:"multipart/form-data"})}if(q.timeout){setTimeout(function(){z=true;A()},q.timeout)}var I=[];try{if(s.extraData){for(var K in s.extraData){I.push(b('<input type="hidden" name="'+K+'" value="'+s.extraData[K]+'" />').appendTo(w)[0])}}C.appendTo("body");E.attachEvent?E.attachEvent("onload",A):E.addEventListener("load",A,false);w.submit()}finally{w.setAttribute("action",H);J?w.setAttribute("target",J):t.removeAttr("target");b(I).remove()}},10);var y=50;function A(){if(k++){return}E.detachEvent?E.detachEvent("onload",A):E.removeEventListener("load",A,false);var H=true;try{if(z){throw"timeout"}var I,L;L=E.contentWindow?E.contentWindow.document:E.contentDocument?E.contentDocument:E.document;var M=q.dataType=="xml"||L.XMLDocument||b.isXMLDoc(L);a("isXml="+M);if(!M&&(L.body==null||L.body.innerHTML=="")){if(--y){k=0;setTimeout(A,100);return}a("Could not access iframe DOM after 50 tries.");return}F.responseText=L.body?L.body.innerHTML:null;F.responseXML=L.XMLDocument?L.XMLDocument:L;F.getResponseHeader=function(O){var N={"content-type":q.dataType};return N[O]};if(q.dataType=="json"||q.dataType=="script"){var n=L.getElementsByTagName("textarea")[0];if(n){F.responseText=n.value}else{var K=L.getElementsByTagName("pre")[0];if(K){F.responseText=K.innerHTML}}}else{if(q.dataType=="xml"&&!F.responseXML&&F.responseText!=null){F.responseXML=B(F.responseText)}}I=b.httpData(F,q.dataType)}catch(J){H=false;b.handleError(q,F,"error",J)}if(H){q.success(I,"success");if(D){b.event.trigger("ajaxSuccess",[F,q])}}if(D){b.event.trigger("ajaxComplete",[F,q])}if(D&&!--b.active){b.event.trigger("ajaxStop")}if(q.complete){q.complete(F,H?"success":"error")}setTimeout(function(){C.remove();F.responseXML=null},100)}function B(n,H){if(window.ActiveXObject){H=new ActiveXObject("Microsoft.XMLDOM");H.async="false";H.loadXML(n)}else{H=(new DOMParser()).parseFromString(n,"text/xml")}return(H&&H.documentElement&&H.documentElement.tagName!="parsererror")?H:null}}};b.fn.ajaxForm=function(c){return this.ajaxFormUnbind().bind("submit.form-plugin",function(){b(this).ajaxSubmit(c);return false}).bind("click.form-plugin",function(g){var d=b(g.target);if(!(d.is(":submit,input:image"))){return}var f=this;f.clk=g.target;if(g.target.type=="image"){if(g.offsetX!=undefined){f.clk_x=g.offsetX;f.clk_y=g.offsetY}else{if(typeof b.fn.offset=="function"){var h=d.offset();f.clk_x=g.pageX-h.left;f.clk_y=g.pageY-h.top}else{f.clk_x=g.pageX-g.target.offsetLeft;f.clk_y=g.pageY-g.target.offsetTop}}}setTimeout(function(){f.clk=f.clk_x=f.clk_y=null},10)})};b.fn.ajaxFormUnbind=function(){return this.unbind("submit.form-plugin click.form-plugin")};b.fn.formToArray=function(q){var p=[];if(this.length==0){return p}var d=this[0];var h=q?d.getElementsByTagName("*"):d.elements;if(!h){return p}for(var k=0,m=h.length;k<m;k++){var e=h[k];var f=e.name;if(!f){continue}if(q&&d.clk&&e.type=="image"){if(!e.disabled&&d.clk==e){p.push({name:f,value:b(e).val()});p.push({name:f+".x",value:d.clk_x},{name:f+".y",value:d.clk_y})}continue}var r=b.fieldValue(e,true);if(r&&r.constructor==Array){for(var g=0,c=r.length;g<c;g++){p.push({name:f,value:r[g]})}}else{if(r!==null&&typeof r!="undefined"){p.push({name:f,value:r})}}}if(!q&&d.clk){var l=b(d.clk),o=l[0],f=o.name;if(f&&!o.disabled&&o.type=="image"){p.push({name:f,value:l.val()});p.push({name:f+".x",value:d.clk_x},{name:f+".y",value:d.clk_y})}}return p};b.fn.formSerialize=function(c){return b.param(this.formToArray(c))};b.fn.fieldSerialize=function(d){var c=[];this.each(function(){var h=this.name;if(!h){return}var f=b.fieldValue(this,d);if(f&&f.constructor==Array){for(var g=0,e=f.length;g<e;g++){c.push({name:h,value:f[g]})}}else{if(f!==null&&typeof f!="undefined"){c.push({name:this.name,value:f})}}});return b.param(c)};b.fn.fieldValue=function(h){for(var g=[],e=0,c=this.length;e<c;e++){var f=this[e];var d=b.fieldValue(f,h);if(d===null||typeof d=="undefined"||(d.constructor==Array&&!d.length)){continue}d.constructor==Array?b.merge(g,d):g.push(d)}return g};b.fieldValue=function(c,j){var e=c.name,p=c.type,q=c.tagName.toLowerCase();if(typeof j=="undefined"){j=true}if(j&&(!e||c.disabled||p=="reset"||p=="button"||(p=="checkbox"||p=="radio")&&!c.checked||(p=="submit"||p=="image")&&c.form&&c.form.clk!=c||q=="select"&&c.selectedIndex==-1)){return null}if(q=="select"){var k=c.selectedIndex;if(k<0){return null}var m=[],d=c.options;var g=(p=="select-one");var l=(g?k+1:d.length);for(var f=(g?k:0);f<l;f++){var h=d[f];if(h.selected){var o=h.value;if(!o){o=(h.attributes&&h.attributes.value&&!(h.attributes.value.specified))?h.text:h.value}if(g){return o}m.push(o)}}return m}return c.value};b.fn.clearForm=function(){return this.each(function(){b("input,select,textarea",this).clearFields()})};b.fn.clearFields=b.fn.clearInputs=function(){return this.each(function(){var d=this.type,c=this.tagName.toLowerCase();if(d=="text"||d=="password"||c=="textarea"){this.value=""}else{if(d=="checkbox"||d=="radio"){this.checked=false}else{if(c=="select"){this.selectedIndex=-1}}}})};b.fn.resetForm=function(){return this.each(function(){if(typeof this.reset=="function"||(typeof this.reset=="object"&&!this.reset.nodeType)){this.reset()}})};b.fn.enable=function(c){if(c==undefined){c=true}return this.each(function(){this.disabled=!c})};b.fn.selected=function(c){if(c==undefined){c=true}return this.each(function(){var d=this.type;if(d=="checkbox"||d=="radio"){this.checked=c}else{if(this.tagName.toLowerCase()=="option"){var e=b(this).parent("select");if(c&&e[0]&&e[0].type=="select-one"){e.find("option").selected(false)}this.selected=c}}})};function a(){if(b.fn.ajaxSubmit.debug&&window.console&&window.console.log){window.console.log("[jquery.form] "+Array.prototype.join.call(arguments,""))}}})(jQuery);
jQuery.fn.sizeToFit=function(){var a=jQuery;this.each(function(){var d=this;var b=a(this).parent();var e=b.height();b.children().each(function(){if(this!=d){e-=a(this).outerHeight()}});var c=a(this).outerHeight()-a(this).height();a(this).css("height",Math.max(0,e-c)+"px")});return this};AJS.Editor.ImageDialog=AJS.Editor.ImageDialog||{beforeShowListeners:[],afterThumbnailsDisplayedListeners:[]};AJS.toInit(function(a){AJS.wikiAttrToString=function(b){var c=[];for(var d in b){if(b.hasOwnProperty(d)){c.push(typeof b[d]=="boolean"?b[d]?d:"":d+"="+b[d])}}return c.length?"|"+c.join(","):""};AJS.Editor.insertImageDialog=function(c,b){this.openImageDialog({submitCallback:c,cancelCallback:b})};AJS.Editor.openImageDialog=function(q){q=q||{};var l=100,g=97;var i="",c=new AJS.Dialog(800,590,"insert-image-dialog");var d=AJS.params.attachmentSourceContentId;var h=function(u){var t={},v=a(".img-align",u).val(),r=!!a(".img-thumbnail",u).attr("checked"),s=!!a(".img-border",u).attr("checked");v!="none"&&(t.align=v);r&&(t.thumbnail=true);s&&(t.border="1");return t};function m(){c.hide().remove();a(document).unbind(".insert-image");q.cancelCallback&&q.cancelCallback()}a(document).bind("keydown.insert-image",function(r){if(r.which==27&&!a("#fancy_overlay").is(":visible")){m();return AJS.stopEvent(r)}});var b="Insert Image";var p="Insert";if(q.imageProperties){b="Edit Image";p="Save"}c.addHeader(b);c.addPanel("Attached Images",AJS.renderTemplate("attachedImages",AJS.getTemplate("imagePropertiesForm")),"attachments-panel");c.addPanel("From the Web",AJS.renderTemplate("webImage",AJS.getTemplate("imagePropertiesForm")),"web-image-panel");c.addButton(p,function(r){var s=h(r.getCurrentPanel().body);r.remove();a(document).unbind(".insert-image");q.submitCallback&&q.submitCallback(i,s,d)});c.addCancel("Cancel",m);c.get("panel:0").setPadding(0);c.get("panel:1").setPadding(0);c.get("panel:0").select();var f=c.get("button:0")[0].item;f.attr("disabled","disabled");a("input.image-url",c.popup.element).bind("keyup click",function(r){var s=a(this).val();i=s;f.attr("disabled",(s!=""&&s!="http://"?"":"disabled"));if(r.which==13){a("input.image-preview",c.popup.element).click();c.get("button:0")[0].item.focus()}});a("input.image-preview",c.popup.element).click(function(){var r=a(this).closest("div");var w=r.find("input.image-url").val();var v=r.find(".image-preview-area");var u=r.find(".image-preview-throbber");u.removeClass("hidden");var t=Raphael.spinner(u[0],60,"#666");var s=r.find(".image-preview-error");v.addClass("faraway");s.addClass("hidden");v.html("");a("<img>").load(function(){t();u.addClass("hidden");v.removeClass("faraway")}).error(function(){t();u.addClass("hidden");s.removeClass("hidden")}).appendTo(v).attr("src",w)});if(q.imageProperties){a(".img-align",c.popup.element).val(q.imageProperties.align||"none");a(".img-thumbnail",c.popup.element).attr("checked",q.imageProperties.thumbnail||"");a(".img-border",c.popup.element).attr("checked",!!q.imageProperties.border||"");if(q.imageProperties.url){c.get("panel:1").select();a("input.image-url",c.popup.element).val(q.imageProperties.url).click();a("input.image-preview",c.popup.element).click()}}AJS.log(AJS.Editor.ImageDialog.beforeShowListeners.length+" beforeShow listeners registered.");a.each(AJS.Editor.ImageDialog.beforeShowListeners,function(){this()});c.show();c.popup.element.find(".dialog-button-panel").append(AJS.template.load("insert-image-did-you-know"));a("select.img-align").focus();var o=a("#upload-attachment form");var k=a("#upload-attachment .image-uploading");var j=a("#upload-attachment .warning");var n=a("#attached-images");AJS.Editor.ImageDialog.clearErrors=function(){j.addClass("hidden");j.empty();n.sizeToFit()};AJS.Editor.ImageDialog.displayErrors=function(s){if(!s||!s.length){return}j.removeClass("hidden");var r=a("ul",j);if(!r.length){r=a("<ul></ul>");r.appendTo(j)}a.each(s,function(t,u){if(!u){return}a("<li>"+u.substring(0,Math.min(g,u.length))+(u.length>g?"&hellip;":"")+"</li>").attr("title",u).appendTo(r)});a("#attached-images").sizeToFit()};AJS.Editor.ImageDialog.imagesContainerSelector="#attached-images .image-list";o.ajaxForm({dataType:"json",data:{contentId:d,responseFormat:"html"},resetForm:true,beforeSubmit:function(){AJS.Editor.ImageDialog.setUploadInProgress(true);AJS.Editor.ImageDialog.clearErrors()},error:function(r){AJS.Editor.ImageDialog.setUploadInProgress(false);AJS.Editor.ImageDialog.displayErrors(["Could not upload the file to Confluence. The server may be unavailable."]);AJS.log("Response from server was: "+r.responseText)},success:function(r){AJS.Editor.ImageDialog.setUploadInProgress(false);var s=[].concat(r.validationErrors||[]).concat(r.actionErrors||[]).concat(r.errorMessage||[]);if(s.length>0){AJS.Editor.ImageDialog.displayErrors(s);return}AJS.Editor.ImageDialog.refreshWithLatestImages(a.map(r.attachmentsAdded||[],function(t){return t.name}))}});o.find("input:file").change(function(){o.submit()});function e(s){if(Math.max(s.thumbnailWidth,s.thumbnailHeight)>l){if(s.thumbnailHeight>s.thumbnailWidth){s.thumbnailWidth=s.thumbnailWidth*l/s.thumbnailHeight;s.thumbnailHeight=l}else{s.thumbnailHeight=s.thumbnailHeight*l/s.thumbnailWidth;s.thumbnailWidth=l}}var t=s.thumbnailUrl+(s.thumbnailUrl.indexOf("?")+1?"&":"?")+"nonce="+(+new Date);var r=a(AJS.renderTemplate("imageDialogImage",t,s.thumbnailWidth,s.thumbnailHeight,(100-s.thumbnailHeight)/2,s.downloadUrl,s.name));r.find(".image-container").andSelf().hover(function(){a(this).addClass("hover")},function(){a(this).removeClass("hover")});r.find("img").load(function(){r.find(".image-container").removeClass("loading")});r.click(function(u){a("#attached-images .selected").removeClass("selected");r.addClass("selected").focus();i=this.name=this.name||a(".caption",this).text();f.attr("disabled","");return AJS.stopEvent(u)});r.dblclick(function(){a(this).click();f.click()});a(".zoom",r).fancybox({padding:0,zoomSpeedIn:500,zoomSpeedOut:500,overlayShow:true,overlayOpacity:0.5});return r}a(document).bind("keydown.insert-image",function(s){if(!n.is(":visible")){return}if(a("#fancy_overlay").is(":visible")){if(s.which==32){a("#fancy_close").click();s.preventDefault();s.stopPropagation();return false}}else{function r(x){var u=a(".attached-image",n);var w=a(".attached-image.selected",n);var t=u.index(w)+x;if(t<0){t=u.length-1}if(t>=u.length){t=0}var v=u.eq(t);v.click().focus();n.simpleScrollTo(v)}if(s.which==37){r(-1);return AJS.stopEvent(s)}else{if(s.which==38){r(-4);return AJS.stopEvent(s)}else{if(s.which==39){r(1);return AJS.stopEvent(s)}else{if(s.which==40){r(4);return AJS.stopEvent(s)}else{if(s.which==32&&a(".attached-image.selected").length>0){a(".attached-image.selected .zoom").click();return AJS.stopEvent(s)}else{if(s.which==13&&!f.is(":disabled")){f.click();return AJS.stopEvent(s)}}}}}}}});AJS.Editor.ImageDialog.setUploadInProgress=function(r,s){if(r){o.addClass("hidden");k.removeClass("hidden");s?k.html(s):k.html("Image uploading&hellip;")}else{o.removeClass("hidden");k.addClass("hidden")}};AJS.Editor.ImageDialog.refreshWithLatestImages=function(r){r=a.map(r||[],function(s){return s&&s.toLowerCase()});a.ajax({type:"GET",url:AJS.params.contextPath+"/pages/attachedimages.action",dataType:"json",data:{contentId:d},error:function(){n.find(".loading-message").remove();n.append(AJS.renderTemplate("imageDialogErrorRetrievingAttachments"))},success:function(s){n.find(".loading-message").remove();n.find(".image-list").empty();n.find(".no-attachments").remove();a(s.images||[]).each(function(){if(this.name&&a.inArray(this.name.toLowerCase(),r)!=-1){n.find(".image-list").prepend(e(this))}else{n.find(".image-list").append(e(this))}});if(n.find(".image-list li").length==0){n.append(AJS.renderTemplate("imageDialogNoAttachments"))}n.sizeToFit().click(function(){i=null;f.attr("disabled","disabled");a(this).find(".selected").removeClass("selected")});if(r.length){n.find(".image-list li:first").click()}else{if(q.imageProperties&&q.imageProperties.imageFileName){n.find("img[src*=/"+q.imageProperties.imageFileName+"?]").click()}}AJS.log(AJS.Editor.ImageDialog.afterThumbnailsDisplayedListeners.length+" afterThumbnailsDisplayed listeners registered.");a.each(AJS.Editor.ImageDialog.afterThumbnailsDisplayedListeners,function(){this()});var u=[];var t=a.map(s.images||[],function(v){return v.name&&v.name.toLowerCase()});a.each(r,function(v,w){a.inArray(w,t)==-1&&u.push(AJS.renderTemplate("imageNotThumbnailable",w))});u&&AJS.Editor.ImageDialog.displayErrors(u)}})};AJS.Editor.ImageDialog.refreshWithLatestImages()};a("#editor-insert-image").click(function(c){AJS.Editor.storeTextareaBits();var b=document.getElementById("markupTextarea");AJS.Editor.insertImageDialog(function(d,e){AJS.Editor.Markup.insertOrUpdateText(AJS.format("\n!{0}{1}!\n",d,AJS.wikiAttrToString(e)),b)});return AJS.stopEvent(c)})});
AJS.Editor.Markup={storeTextareaBits:function(b,a,f){if(a.selectionStart!=null){a.sel=a.value.substr(a.selectionStart,a.selectionEnd-a.selectionStart);a.sel1=a.value.substr(0,a.selectionStart);a.sel2=a.value.substr(a.selectionEnd);b.selectedText.value=a.sel}else{if(document.selection&&document.selection.createRange){try{!f&&b.elements[AJS.params.parametersName].focus()}catch(d){}var c=document.selection.createRange();a.caretPos=c.duplicate();b.selectedText.value=c.text}}return b.selectedText.value},insertOrUpdateText:function(c,a){if(window.getSelection&&a.selectionStart&&a.selectionStart!=null){a.value=a.sel1+c+a.sel2;a.focus();a.selectionStart=a.selectionEnd=a.sel1.length+c.length}else{if(a.createTextRange&&a.caretPos){var b=a.caretPos;b.text=b.text.charAt(b.text.length-1)==" "?c+" ":c}else{a.value+=c}}}};
AJS.MacroBrowser=(function(b){var a={};return{hasInit:false,metadataList:[],aliasMap:{},fields:{},Macros:a,getMacroJsOverride:function(c){return a[c]},setMacroJsOverride:function(d,c){return a[d]=c},parseMacro:function(g){var e=g.match(/(\{(.+?)(?::(.*?(?=[^\\]\}).)?)?\})(?:((?:\n|.)*?)\{\2\})?/);var f={markup:e[0],startTag:e[1],name:e[2],paramStr:e[3],bodyMarkup:e[4],params:{}};if(f.markup){var c=g.split(f.markup);f.beforeTag=c[0];f.afterTag=c[1]}if(f.paramStr){var d=f.paramStr.split("|");b(d).each(function(j,k){var h=k.indexOf("=");if(h<0&&!f.params[""]){f.params[""]=k}else{f.params[k.substring(0,h)]=k.substring(h+1)}})}return f},getSelectedMacro:function(d,e){var c=/^(?:.|\n)*[^\\](?={(?:\\}|[^}])+$)/m.exec(" "+d+" ");if(!c){return null}var g=c[0].substring(1).length;var f=AJS.MacroBrowser.parseMacro(e.substring(g));f.startIndex=g;f.params={};if(f.paramStr){f.paramStr.replace(/(?=(?:^|\|)(.*?)(?:=(.*?))?(?:\||$))/g,function(h,i,j){if((!j||j=="")&&!f.params[""]){f.params[""]=i}else{f.params[i]=j}})}return f},makeParameterDiv:function(k,f,c){var n=this,m;var i=f.type.name;if(c){var h=c.fields&&c.fields[i];if(h&&typeof h!="function"){h=h[f.name]}if(typeof h=="function"){m=h.call(c,f)}}if(!m){if(!(i in n.ParameterFields&&typeof n.ParameterFields[i]=="function")){i="string"}m=n.ParameterFields[i](f)}n.fields[f.name]=m;var j=m.paramDiv;var l=m.input;var d="macro-param-"+f.name;j.attr("id","macro-param-div-"+f.name);l.addClass("macro-param-input").attr("id",d);if(f.hidden){j.hide()}var g=k.pluginKey;if(f.displayName==n.makeDefaultKey(g,k.macroName,"param",f.name,"label")){f.displayName=f.name}if(f.description==n.makeDefaultKey(g,k.macroName,"param",f.name,"desc")){f.description=""}var e=f.displayName;if(f.required){e+=" *";j.addClass("required")}b("label",j).attr("for",d).text(e);if(f.description){j.append(AJS.clone("#macro-param-desc-template").html(f.description))}return j},makeBodyDiv:function(c,d){var e=AJS.MacroBrowser;var f=AJS.clone("#macro-body-template");b("textarea",f).val((d&&d.bodyMarkup)||e.settings.selectedMarkup||"");if(c.label){b("label",f).text(c.label)}if(c.description){f.append(AJS.clone("#macro-param-desc-template").html(c.description))}if(c.hidden){f.hide()}return f},processRequiredParameters:function(){var c=b("#macro-insert-container .macro-param-div.required .macro-param-input").filter(function(){var g=b(this).val();return(g==null||g=="")});var f=(c.length==0);var e=f?"":"disabled";var d=e?"addClass":"removeClass";AJS.$("#macro-browser-dialog button.ok").attr("disabled",e);AJS.$("#macro-browser-dialog .macro-preview-header .refresh-link").attr("disabled",e)[d]("disabled");return f},paramChanged:function(){AJS.MacroBrowser.processRequiredParameters()},loadMacroInBrowser:function(m,p){if(!m||!m.formDetails){alert("Could not load unknown macro in the macro browser.");return}var o=AJS.MacroBrowser,x=m.formDetails,d=x.macroName,c=a[d],s=o.settings.selectedMacro,u=p=="edit"?o.editTitle:o.insertTitle;b("#save-warning-span").addClass("hidden");AJS.MacroBrowser.dialog.gotoPage(1).addHeader(u.replace(/\{0\}/,m.title));var z=AJS.$("#macro-browser-dialog .dialog-button-panel .ok");if(p=="edit"){z.text("Save")}else{z.text("Insert")}AJS.$("#macro-insert-container .macro-name").val(d);var k=m.extendedDescription?m.extendedDescription:m.description;var A=AJS.clone("#macro-summary-template .macro-desc").prepend(k),n=b("#macro-insert-container .macro-input-fields").html(A);if(x.documentationUrl){var q=AJS.clone("#macro-doco-link-template");AJS.$("a",q).attr("href",x.documentationUrl);A.append(q)}else{if(!A.text()){A.remove()}}if(x.body){var h=m.pluginKey;if(x.body.label==o.makeDefaultKey(h,d,"body","label")){x.body.label=""}if(x.body.description==o.makeDefaultKey(h,d,"body","desc")){x.body.description=""}var l=o.makeBodyDiv(x.body,s)}if(x.freeform){var e=(s&&s.paramStr)||"",j=AJS.clone("#macro-freeform-template");b(".macro-name-display",j).text(d+": ");b(".macro-text",j).val(e);if(l){l=l.append("{"+d+"}");AJS.$(".macro-freeform-input",j).after(l)}if(x.notationHelp){var y=AJS.$(x.notationHelp).children();if(y[0]){if(!s){var v=AJS.$(y[0]).html().replace(/<br>/gi,"\n").replace(/<[^>]+>/gi,"");var i=v.indexOf("{"+d);if(i>-1){var w=o.parseMacro(v.substring(i));if(w.paramStr){b(".macro-freeform-input input",j).val(w.paramStr)}if(w.bodyMarkup){b(".macro-body-div textarea",j).val(w.bodyMarkup.replace(/^\n|\n$/g,"").replace(/^\s+|\s+$/gm,""))}}}b(".macro-example",j).append(y[0].innerHTML).removeClass("hidden")}if(y[1]){b(".macro-help",j).append(y[1].innerHTML).removeClass("hidden")}}n.append(j)}else{if(l){n.append(l)}b(x.parameters).each(function(){n.append(o.makeParameterDiv(m,this,c))});var r=s?b.extend({},s.params):{};if(c&&typeof c.beforeParamsSet=="function"){r=c.beforeParamsSet(r,!s)}var g={};if(c&&typeof c.populateBodyParams=="function"){g=c.populateBodyParams(l)}b(x.parameters).each(function(){var B=this,t=r[B.name];if(t!=null){delete r[B.name]}else{b(B.aliases).each(function(){if(r[this]){t=r[this];delete r[this]}})}if(t==null){if(g[B.name]){t=g[B.name]}else{t=B.defaultValue}}if(t!=null){o.fields[B.name].setValue(t)}});o.unknownParams=r}b("a",n).click(function(){window.open(this.href,"_blank").focus();return false});if(!b("#macro-browser-dialog:visible").length){o.showBrowserDialog()}var f=b(":input:visible:first",n);if(f.length){f.focus();if(!s&&f.val()!=""&&f[0].select){f[0].select()}}o.previewMacro(m)},makeParamStringFromMap:function(c){var d=[];if(c[""]){d.push(c[""]);delete c[""]}for(var e in c){d.push(e+"="+c[e])}return d.join("|")},getMacroMarkupFromForm:function(j){var d=b("#macro-insert-container .macro-name").val(),l="{"+d,m=b("#macro-insert-container .macro-text"),e,n=AJS.MacroBrowser;if(m.length){e=m.val()}else{var i={},f={},h=j.formDetails.parameters;b(h).each(function(){var o=AJS.$("#macro-param-"+this.name);var p=o.val();if(o.attr("type")=="checkbox"){p=""+o.attr("checked")}if(this.forBody){if(p){f[this.name]=p}}else{if(p&&(this.hidden||(!this.defaultValue||this.defaultValue!=p))){i[this.name]=p}}});if(n.unknownParams){b.each(n.unknownParams,function(o,p){i[o]=p})}var c=a[d];if(c&&typeof c.beforeParamsRetrieved=="function"){i=c.beforeParamsRetrieved(i)}e=n.makeParamStringFromMap(i)}if(e){l+=":"+e}l+="}";var g={name:d,startTag:l,markup:l,bodyMarkup:"",hasBody:AJS.$("#macro-insert-container .macro-body-div").length>0};if(g.hasBody){var k=AJS.$("#macro-insert-container .macro-body-div textarea").val();c=a[d];if(c&&c.applySpecialBodyHandling){k=c.applySpecialBodyHandling(j,k,f)}g.bodyMarkup=k;g.markup+=g.bodyMarkup;g.markup+="{"+d+"}"}return g},previewMacro:function(e){var d=AJS.MacroBrowser;b("#macro-insert-container .macro-preview").html("");if(!d.processRequiredParameters()){AJS.log("previewMacro: missing required params");return}AJS.log("previewMacro: required params ok");d.showPreviewWaitImage(true);var g=d.getMacroMarkupFromForm(e).markup,c=a[e.macroName];if(c&&c.prepareMacroForPreview){g=c.prepareMacroForPreview(g)}var f={contentId:AJS.Editor.getContentId(),contentType:AJS.params.contentType,spaceKey:AJS.params.spaceKey,wikiMarkup:g};b.post(AJS.params.contextPath+"/pages/rendercontent.action",f,function(h){AJS.MacroBrowser.showPreviewWaitImage(false);var m=AJS.params.staticResourceUrlPrefix+"/blank.html";var l=AJS.$("#macro-insert-container .macro-preview");l.html('<iframe src="'+m+'" frameborder="0" name="macro-browser-preview-frame" id="macro-preview-iframe"></iframe>');AJS.log("previewMacro: Created iframe");var i=AJS.$("#macro-insert-container .macro-preview iframe")[0];var k=i.contentDocument||i.contentWindow.document;k.write(h);k.close();var j=b("div.error span.error",k);if(j.length){AJS.log("Error rendering markup : "+g)}AJS.log("previewMacro: rendered")})},showPreviewWaitImage:function(c){if(c){b("#macro-browser-preview-link").attr("disabled",true).addClass("disabled");var d=AJS("div").addClass("macro-loading");b("#macro-browser-preview").append(d);AJS.MacroBrowser.previewSpinner=Raphael.spinner(d[0],60,"#666");AJS.MacroBrowser.previewSpinner.throbber=d}else{if(AJS.MacroBrowser.previewSpinner){b("#macro-browser-preview").removeClass("macro-loading");AJS.MacroBrowser.previewSpinner();AJS.MacroBrowser.previewSpinner.throbber.remove();delete AJS.MacroBrowser.previewSpinner;b("#macro-browser-preview-link").attr("disabled",false).removeClass("disabled")}}},previewOnload:function(c){var e=AJS.MacroBrowser.dialog.activeMetadata.macroName;var d=a[e];if(d&&d.postPreview){d.postPreview(AJS.$("#macro-preview-iframe")[0],AJS.MacroBrowser.dialog.activeMetadata)}AJS.Editor.disableFrame(c);b(c).click(function(h){if(h.target.tagName.toLowerCase()==="a"){var f=h.target;var g=b(f).attr("href");if(g&&g.indexOf("#")!=0&&g.indexOf(window.location)==-1){window.open(g,"_blank").focus()}return false}})},getMacroMetadata:function(f){for(var e=0,c=this.metadataList.length;e<c;e++){var d=this.metadataList[e];if(d.macroName==f){return d}}return null},open:function(e){if(!e){e={};AJS.log("No settings to open the macro browser.")}var d=AJS.MacroBrowser;var f=e.selectedMacro;if(f&&f.name){var c=d.getMacroJsOverride(f.name);if(c&&typeof c.opener=="function"){c.opener(f);return}}if(!d.hasInit){AJS.log("init macro browser");d.showBrowserSpinner(true);if(d.initData){d.initBrowser()}else{d.initMacroBrowserAfterRequest=e;return}}d.openMacroBrowser(e)},openMacroBrowser:function(d){var k=AJS.MacroBrowser;k.settings=d;if(d.presetMacroName){d.presetMacroMetadata=k.getMacroMetadata(d.presetMacroName)}var f=d.presetMacroMetadata;if(!f){var l=d.selectedMacro;if(l){var e=l.name.toLowerCase();e=k.aliasMap[e]||e;var c=a[e];if(c){if(typeof c.updateSelectedMacro=="function"){c.updateSelectedMacro(l)}var j=c.getMacroDetailsFromSelectedMacro;if(j){f=j(k.metadataList,l)}}if(!f){f=AJS.MacroBrowser.getMacroMetadata(e)}}}if(f){AJS.log("Open macro browser to edit macro: "+f.macroName);b("#macro-browser-dialog button.back").hide();k.replicateSelectMacro(f,d.mode||"edit")}else{b("#macro-browser-dialog button.back").show();k.showBrowserDialog();if(d.selectedCategory){var g=b("#select-macro-page .dialog-page-menu button").index(b("#category-button-"+d.selectedCategory));if(g<0){g=0}k.dialog.gotoPanel(0,g)}else{k.dialog.gotoPanel(0,0)}var i=b.trim(d.searchText);var h=b("#macro-browser-search");h.val(i).keyup();i&&h.removeClass("blank-search");h.focus()}},showBrowserDialog:function(){AJS.MacroBrowser.dialog.show();AJS.MacroBrowser.showBrowserSpinner(false)},complete:function(g){if(!b("#macro-browser-dialog .dialog-button-panel .ok").is(":visible:not(:disabled)")){return}var f=AJS.MacroBrowser;var e=f.dialog.activeMetadata;var c=a[e.macroName];if(c&&c.manipulateMarkup){c.manipulateMarkup(e)}var d=f.getMacroMarkupFromForm(e);f.close();if(f.settings.onComplete){f.settings.onComplete(d)}},cancel:function(){var c=AJS.MacroBrowser;c.close();if(typeof c.settings.onCancel=="function"){c.settings.onCancel()}},close:function(){var c=this;c.unknownParams={};c.fields={};c.dialog.hide()},replicateSelectMacro:function(c,d){AJS.MacroBrowser.dialog.activeMetadata=c;AJS.MacroBrowser.loadMacroInBrowser(c,d)},makeDefaultKey:function(){return b.makeArray(arguments).join(".")},showBrowserSpinner:function(c){var d=AJS.Editor.inRichTextMode()?".defaultSkin span.mce_conf_macro_browser":"#editor-insert-macro";if(c){b(d).addClass("wait")}else{b(d).removeClass("wait")}},initBrowser:function(){var q=AJS.MacroBrowser,z=q.initData;if(!z.categories||!AJS.MacroBrowser.metadataList.length){alert("There has been an error loading the macro browser. Please try again or see your system administrator.");AJS.MacroBrowser.showBrowserSpinner(false);return false}var s=new Date();var x=q.dialog=AJS.ConfluenceDialog({width:865,height:530,id:"macro-browser-dialog",onSubmit:q.complete,onCancel:q.cancel});x.getPage(0).element.attr("id","select-macro-page");x.addHeader(z.title);q.editTitle=z.editTitle;q.insertTitle=z.insertTitle;var r;z.categories=b.map(z.categories,function(i){if(i.name=="hidden-macros"){r=i;return null}return i});z.categories.sort(function(j,i){return(j.displayName.toLowerCase()>i.displayName.toLowerCase()?1:-1)});if(r&&AJS.params.showHiddenUserMacros){z.categories.push(r)}var d=function(i){return b("#macro-summaries-template").clone().attr("id","category-"+i)};var l=function(A){var B=AJS.clone("#macro-summary-template").click(function(i){if(q.settings.nestingMacros&&(b.inArray(A.macroName,q.settings.nestingMacros)>-1)){alert("Macros with the same name cannot be nested inside each other.");return AJS.stopEvent(i)}x.activeMetadata=A;AJS.MacroBrowser.loadMacroInBrowser(A,"insert")});if(A.icon){var C=(A.icon.relative?AJS.params.staticResourceUrlPrefix:"")+A.icon.location;if(!A.icon.relative&&AJS.$.browser.msie&&!window.location.href.indexOf("https")&&C.indexOf("https")){B.prepend("<span class='macro-icon-holder icon-"+A.macroName+"'></span>")}else{B.prepend("<img src='"+C+"' alt='icon' width='"+A.icon.width+"' height='"+A.icon.height+"' title='"+A.title+"'/>")}}else{B.prepend("<span class='macro-icon-holder icon-"+A.macroName+"'></span>")}b(".macro-title",B).text(A.title);b(".macro-desc",B).prepend(A.description);if(A.macroName=="gadget"){var j;for(var t=0;t<A.formDetails.parameters.length;t++){if(A.formDetails.parameters[t].name=="url"){j=encodeURI(A.formDetails.parameters[t].defaultValue);break}}if(j){if(!j.match("^https?://.*")){j=AJS.params.contextPath+"/"+j}b(".macro-title",B).after(AJS.template.load("macro-browser-gadget-url").fill({url:j}))}}return B};var e={all:d("all")},w,m,v,y;for(w=0,m=q.metadataList.length;w<m;w++){var n=q.metadataList[w];if(n.hidden){if(!AJS.params.showHiddenUserMacros){continue}if(n.pluginKey!="_-user-macro-_"){continue}n.categories.push("hidden-macros")}var p=l(n).attr("id",n.id);e.all.append(p);for(v=0,y=n.categories.length;v<y;v++){var o=n.categories[v];e[o]=e[o]||d(o);e[o].append(l(n).attr("id",o+"-"+n.id))}}x.addPanel("All",e.all,"all","category-button-all");for(w=0,m=z.categories.length;w<m;w++){var u=z.categories[w];x.addPanel(u.displayName,e[u.name]||d(u.name),u.name,"category-button-"+u.name).getPanel(w).setPadding(0)}x.addCancel("Cancel",AJS.MacroBrowser.cancel);x.popup.element.find(".dialog-title").append(AJS.template.load("macro-browser-help-link"));x.addHelpText("Hint: type \"\u003cstrong>{\u003c\/strong>\" in the rich text editor to insert macros on the page.");var g=AJS.$("#macro-insert-template").clone().attr("id","macro-insert-container");b(".macro-preview-container .macro-preview",g).attr("id","macro-browser-preview");b(".macro-preview-container .macro-preview-header .refresh-link",g).attr("id","macro-browser-preview-link").click(function(i){AJS.MacroBrowser.previewMacro(x.activeMetadata);return AJS.stopEvent(i)});x.addPage().addPanel("X",g,"macro-input-panel").addLink("Back",function(i){i.prevPage();b("#macro-browser-search").focus()},"dialog-back-link").addButton("http://10.20.160.198/wiki/s/en/2166/34/1.0/_/download/batch/confluence.web.resources:page-editor/insert.name",function(){AJS.MacroBrowser.complete()},"ok").addCancel("Cancel",function(){AJS.MacroBrowser.cancel()}).getPanel(0).setPadding(0);b("#macro-browser-dialog .dialog-button-panel .ok").before("<span id='save-warning-span' class='hidden'/>");var f=function(t){var j=null;if(t!=""){if(x.getCurrentPanel()!=x.getPanel(0)){x.gotoPanel(0)}var i=q.searchSummaries(t);j={};b.each(i,function(){j[this.id]=this})}b("#macro-browser-dialog .dialog-panel-body #category-all .macro-list-item").each(function(){(!j||this.id in j)?b(this).show():b(this).hide()})};var h=b("<form id='macro-browser-search-form'><input type='text'/></form>");var c=b("input",h).attr("id","macro-browser-search").keyup(function(i){f(b.trim(c.val()))}).focus(function(j){var i=b(j.target);if(i.hasClass("blank-search")){i.removeClass("blank-search").val("")}j.target.select()}).blur(function(j){var i=b(j.target);if(b.trim(i.val())==""){i.addClass("blank-search").val("Search")}}).blur();h.submit(function(j){var i=b("#macro-browser-dialog .dialog-panel-body #category-all .macro-list-item:visible");if(b.trim(c.val())!=""&&i.length==1){i.click()}return AJS.stopEvent(j)});x.page[0].header.append(h);x.page[0].ontabchange=function(i,j){if(i!=x.getPanel(0,0)){if(!c.hasClass("blank-search")){c.val("").blur()}f("")}};x.gotoPanel(0,0);x.ready=true;q.hasInit=true;var k=(new Date()).getTime()-s.getTime();AJS.log("loading macro browser took "+k+"ms");return true},loadModel:function(c){if(!c){AJS.log("AJS.MacroBrowser.loadModel - no macro data, aborting");return}AJS.log("AJS.MacroBrowser.loadModel - starting");var m=AJS.MacroBrowser;m.metadataList=[];m.aliasMap={};for(var e=0,l=c.length;e<l;e++){var k=c[e];if(k.aliases){for(var d=0,f=k.aliases.length;d<f;d++){k.aliases[d]=k.aliases[d].toLowerCase();m.aliasMap[k.aliases[d]]=k.macroName.toLowerCase()}}if(k.title==m.makeDefaultKey(k.pluginKey,k.macroName,"label")){k.title=k.macroName.charAt(0).toUpperCase()+k.macroName.substring(1).replace(/-/g," ")}if(k.description==m.makeDefaultKey(k.pluginKey,k.macroName,"desc")){k.description=""}k.id="macro-"+(k.alternateId||k.macroName);var g=[k.macroName,k.title].concat(k.aliases);k.keywordsNoDesc=g.join(",");var h=(k.description&&k.description.replace(/,/g," "))||"";g.push(h);k.keywords=g.join(",");m.metadataList.push(k)}m.metadataList.sort(function(j,i){return(j.title.toLowerCase()>i.title.toLowerCase()?1:-1)});AJS.log("AJS.MacroBrowser.loadModel - complete, "+m.metadataList.length+" macros loaded")},searchSummaries:function(d,c){c=b.extend({splitRegex:/[\s\-]+/},c);return AJS.filterBySearch(this.metadataList,d,c)}}})(AJS.$);AJS.toInit(function(a){a(window).bind("render-content-loaded",function(d,b){var c=a("#macro-preview-iframe");if(c.contents().find("body")[0]==b){AJS.MacroBrowser.previewOnload(b)}});setTimeout(function(){var b=AJS.MacroBrowser;AJS.$.ajax({type:"GET",dataType:"json",url:AJS.params.contextPath+"/plugins/macrobrowser/browse-macros.action",success:function(c){b.initData=c;b.loadModel(c.macros);if(b.initMacroBrowserAfterRequest){b.initBrowser();b.openMacroBrowser(b.initMacroBrowserAfterRequest)}},error:function(c){AJS.log("Error requesting macro browser metadata:");AJS.log(c);b.initData={}}})},500)});
AJS.MacroBrowser.Field=function(d,b,c){c=c||{};var e=c.setValue||function(f){b.val(f)};var a=c.getValue||function(){return b.val()};b.change(c.onchange||AJS.MacroBrowser.paramChanged);return{paramDiv:d,input:b,setValue:e,getValue:a}};AJS.MacroBrowser.ParameterFields=(function(a){var b=function(g,f,e){if(f&&f.length){for(var c=0,d=f.length;c<d;c++){AJS.MacroBrowser.fields[f[c]]&&AJS.MacroBrowser.fields[f[c]].dependencyUpdated(g,e)}}};return{updateDependencies:b,username:function(f,d){if(f.multiple){return AJS.MacroBrowser.ParameterFields.string(f,d)}d=d||{};var e=AJS.clone("#macro-param-template");var c=AJS.$("input[type='text']",e);c.addClass("autocomplete-user").attr("data-none-message","Not Found");if(f.required){c.keyup(AJS.MacroBrowser.processRequiredParameters)}c.bind("selected.autocomplete-content",function(h,g){if(d.onselect){d.onselect(g.selection)}else{if(d.setValue){d.setValue(g.content.username)}else{b(f.name,d.dependencies,c.val());(typeof d.onchange=="function")&&d.onchange.apply(c)}}});AJS.Confluence.Binder.autocompleteUser(e);return AJS.MacroBrowser.Field(e,c)},spacekey:function(f,d){if(f.multiple){return AJS.MacroBrowser.ParameterFields.string(f,d)}d=d||{};var e=AJS.clone("#macro-param-template");var c=AJS.$("input[type='text']",e);c.addClass("autocomplete-space").attr("data-template","{key}").attr("data-none-message","Not Found");if(f.required){c.keyup(AJS.MacroBrowser.processRequiredParameters)}c.bind("selected.autocomplete-content",function(h,g){if(d.onselect){d.onselect(g.selection)}else{if(d.setValue){d.setValue(g.content.key)}else{b(f.name,d.dependencies,c.val());(typeof d.onchange=="function")&&d.onchange.apply(c)}}});AJS.Confluence.Binder.autocompleteSpace(e);return AJS.MacroBrowser.Field(e,c)},attachment:function(g,d){if(g.multiple){return AJS.MacroBrowser.ParameterFields.string(g,d)}var e=AJS.clone("#macro-param-select-template");var c=AJS.$("select",e);d=d||{};d.setValue=d.setValue||function(j){var h=false;c.find("option").each(function(){if(this.value==j){h=true;return false}});if(!h){c.append(AJS.$("<option/>").attr("value",j).text(j+" ("+"Not Found"+")"));c.tempValue=j}else{delete c.tempValue}try{c.val(j)}catch(i){AJS.log(i)}c.change()};var f=AJS.MacroBrowser.Field(e,c,d);f.updateDependencies=b;f.getData=function(j){if(!((j.title&&j.spaceKey)||j.pageId||j.draftId)){AJS.log("Not enough parameters to send attachmentsearch request");return}var i=c.tempValue||c.val();if(d.fileTypes){j.fileTypes=d.fileTypes}var h=AJS.params.contextPath+(j.draftId?"/json/draftattachmentsearch.action":"/json/attachmentsearch.action");a.getJSON(h,j,function(n){if(n.error){return}a("option",c).remove();var k=n.attachments;if(!k||!k.length){c.append(AJS.$("<option/>").attr("value","").html("No appropriate attachments"));if(c.tempValue){d.setValue(c.tempValue)}}else{for(var l=0,m=k.length;l<m;l++){c.append(AJS.$("<option/>").attr("value",k[l].name).text(k[l].name))}i=i||c.tempValue;d.setValue(i||k[0].name)}})};return f},"confluence-content":function(g,d){if(g.multiple){return AJS.MacroBrowser.ParameterFields.string(g,d)}d=d||{};g.options=g.options||{};var f=AJS.clone("#macro-param-template"),c=AJS.$("input[type='text']",f).attr("data-none-message","Not Found").attr("data-template","");if(g.required){c.keyup(AJS.MacroBrowser.processRequiredParameters)}d.onchange=d.onchange||function(h){var i=c.val();b(g.name,d.dependencies,i)};d.setValue=d.setValue||function(h){c.val(h);(typeof d.onchange=="function")&&d.onchange.apply(c)};c.bind("selected.autocomplete-content",function(m,k){var h="";if(g.options.includeDatePath=="true"&&k.content.type=="blogpost"){var l=k.content.createdDate.date.split("-");h="/"+l[0]+"/"+l[1]+"/"+l[2].substring(0,2)+"/"}var j=k.content.space&&k.content.space.key,i=((j&&j!=AJS.params.spaceKey)?(j+":"):"")+h+k.content.title;c.val(i);if(d.onselect){d.onselect(k.selection)}else{d.setValue(i,c)}});if(g.options.spaceKey){if(g.options.spaceKey.toLowerCase()=="@self"){g.options.spaceKey=AJS.params.spaceKey}c.attr("data-spacekey",g.options.spaceKey)}var e=g.options.type;if(typeof e=="string"){if(e=="page"){c.addClass("autocomplete-page");AJS.Confluence.Binder.autocompletePage(f)}else{if(e=="blogpost"){c.addClass("autocomplete-blogpost");AJS.Confluence.Binder.autocompleteBlogpost(f)}else{if(e=="attachment"){c.addClass("autocomplete-attachment");AJS.Confluence.Binder.autocompleteAttachment(f)}}}}else{c.addClass("autocomplete-confluence-content");AJS.Confluence.Binder.autocompleteConfluenceContent(f)}return AJS.MacroBrowser.Field(f,c,d)},string:function(f,d){var e=AJS.clone("#macro-param-template");var c=a("input",e);if(f.required){c.keyup(AJS.MacroBrowser.processRequiredParameters)}return AJS.MacroBrowser.Field(e,c,d)},"boolean":function(f,d){var e=AJS.clone("#macro-param-checkbox-template");var c=a("input",e);d=d||{};d.setValue=d.setValue||function(g){if(/true/i.test(g)||(/true/i.test(f.defaultValue)&&!(/false/i).test(g))){c.attr("checked","checked")}};return AJS.MacroBrowser.Field(e,c,d)},"enum":function(f,d){if(f.multiple){return AJS.MacroBrowser.ParameterFields.string(f,d)}var e=AJS.clone("#macro-param-select-template");var c=a("select",e);if(!(f.required||f.defaultValue)){c.append(AJS.$("<option/>").attr("value",""))}a(f.enumValues).each(function(){c.append(AJS.$("<option/>").attr("value",this).html(""+this))});return AJS.MacroBrowser.Field(e,c,d)},_hidden:function(f,d){var e=AJS.clone("#macro-param-hidden-template").hide();var c=a("input",e);return AJS.MacroBrowser.Field(e,c,d)}}})(AJS.$);
(function(a){var b=function(c){this.fileTypes=c};b.prototype.beforeParamsSet=function(e,c){if(!e.page&&!(e.date||e.space)){if(AJS.params.contentType=="page"||AJS.params.contentType=="blogpost"){e.page=AJS.Editor.getCurrentTitle()}else{if(AJS.params.contentType=="comment"){e.page=AJS.params.pageTitle}}}if(e.date){var d=e.date.split("/");e.page=["",d[2],d[0],d[1],e.page].join("/")}if(e.space){e.page=e.space+":"+e.page}return e};b.prototype.beforeParamsRetrieved=function(e){if(e.page){var d=e.page.split(":");if(d.length>1){e.space=d[0];e.page=d[1]}var c=e.page.split("/");if(c.length>1){e.date=[c[2],c[3],c[1]].join("/");e.page=c[4]}if(((AJS.params.contentType=="page"||AJS.params.contentType=="blogpost")&&e.page==AJS.Editor.getCurrentTitle())||(AJS.params.contentType=="comment"&&e.page==AJS.params.pageTitle)){delete e.page}}return e};b.prototype.fields={attachment:function(f){var c=function(g){var i={};var h=g.split(":",2);i.spaceKey=((h.length==2)&&h[0])||AJS.params.spaceKey;i.title=h[h.length-1];if(i.title.indexOf("/")==0){i.postingDay=i.title.substr(1,10);i.title=i.title.substr(12)}if(i.title==AJS.Editor.getCurrentTitle()){i.title=""}if(!i.title){if(AJS.params.newPage){i.draftId=AJS.params.contentId}else{i.pageId=AJS.params.pageId}}return i};var d={fileTypes:this.fileTypes};var e=AJS.MacroBrowser.ParameterFields.attachment(f,d);e.dependencyUpdated=function(i,h){AJS.log("attachment:dependencyUpdated called: "+i+", "+h);var g=c(h);this.getData(g)};return e},"confluence-content":function(d){var c={dependencies:["name"]};return AJS.MacroBrowser.ParameterFields["confluence-content"](d,c)}};AJS.MacroBrowser.activateSmartFieldsAttachmentsOnPage=function(d,c){AJS.MacroBrowser.setMacroJsOverride(d,new b(c))}})(AJS.$);