!function(t){"use strict";function e(t){this.editor=t,this.init()}function o(e){var o=this;o.editor=e,o.undoBuf=[],o.undoPtr=-1,o.mode="none",t(o.editor.txtarea).on("keydown keyup",(function(t){var e,i=t.keyCode;if(t.ctrlKey||t.metaKey)switch(i){case 17:return!1;case 89:return"keydown"==t.type&&o.redo(),t.preventDefault(),!1;case 90:return"keydown"==t.type&&o.undo(),t.preventDefault(),!1}else"keyup"==t.type&&(i>=33&&i<=40||i>=63232&&i<=63235?e="moving":8==i||46==i||127==i?e="deleting":13==i||32==i?e="whitespace":27==i?e="escape":(i<16||i>20)&&91!=i&&32!=i&&(e="typing"));"keyup"==t.type&&o.saveState(e)})).on("click drop paste",(function(t){var e="paste";"click"==t.type&&(e="moving"),o.saveState(e)})),o.saveState("none")}e.prototype.init=function(){var t=this;t.editor.getSelectionRange(),t.selectionStart=t.editor.txtarea.selectionStart,t.selectionEnd=t.editor.txtarea.selectionEnd,t.scrollTop=t.editor.txtarea.scrollTop,t.value=t.editor.txtarea.value},e.prototype.restore=function(){var e=this;e.editor.txtarea.value=e.value,e.editor.txtarea.scrollTop=e.scrollTop,e.editor.setSelectionRange(e.selectionStart,e.selectionEnd),t(window).trigger("resize")},e.prototype.isUnchanged=function(){var t=this,e=t.editor.txtarea;return t.editor.getSelectionRange(),e.selectionStart==t.selectionStart&&e.selectionEnd==t.selectionEnd&&e.scrollTop==t.scrollTop&&e.value==t.value},o.prototype.updateGui=function(){var t=this,e=t.editor.container.find(".ui-natedit-undo"),o=t.editor.container.find(".ui-natedit-redo");t.canUndo()?e.button("enable"):e.button("disable"),t.canRedo()?o.button("enable"):o.button("disable")},o.prototype.canUndo=function(){return this.undoPtr>0},o.prototype.canRedo=function(){return void 0!==this.undoBuf[this.undoPtr+1]},o.prototype.getCurrentState=function(){return this.undoBuf[this.undoPtr]},o.prototype.saveState=function(o){var i=this,n=i.getCurrentState();if(void 0!==n){if(n.isUnchanged())return;if(n.value==i.editor.txtarea.value||"none"!=o&&o==i.mode||"whitespace"===o&&"typing"===i.mode)return t.log("NATEDIT: reuse current state in mode=",o),i.mode=o,void n.init()}t.log("NATEDIT: mode=",o),i.mode=o,i.undoPtr++,t.log("NATEDIT: save state at undoPtr=",i.undoPtr),n=new e(i.editor),i.undoBuf[i.undoPtr]=n,i.undoBuf[i.undoPtr+1]=void 0,i.updateGui()},o.prototype.undo=function(){var e=this;t.log("NATEDIT: called undo"),e.canUndo()?(e.undoPtr--,t.log("NATEDIT: ... undoing undoPtr=",e.undoPtr),e.undoBuf[e.undoPtr].restore(),e.mode="none",e.updateGui()):t.log("... can't undo")},o.prototype.redo=function(){var e=this;e.canRedo()?(e.undoPtr++,t.log("NATEDIT: ... redoing undoPtr=",e.undoPtr),e.undoBuf[e.undoPtr].restore(),e.mode="none",e.updateGui()):t.log("NATEDIT: ... can't redo")},t.NatEditor=function(e,i){var n=this,a=t(e);n.opts=t.extend({},i,a.data()),n.txtarea=e,n.id=foswiki.getUniqueID(),n.form=t(e.form),void 0===n.txtarea.selectionStart&&(n.oldIE=!0),t.log("NATEDIT: opts=",n.opts),n.opts.autoResize&&(n.opts.autoMaxExpand=!1,n.opts.resizable=!1),a.addClass("ui-natedit ui-widget"),n.initGui(),n.undoManager=new o(n),n.opts.showToolbar&&n.initToolbar(),n.initForm(),n.opts.autoMaxExpand&&(a.addClass("ui-natedit-autoexpand"),n.autoMaxExpand(),n.container.parent().css("cssText","height: auto !important")),n.opts.autoResize&&(n.initAutoExpand(),n.autoResize()),a.on("keydown",(function(t){13==t.keyCode?n.handleLineFeed(t):9==t.keyCode&&n.handleTab(t)}))},t.NatEditor.prototype.handleTab=function(t){var e,o,i,n=this;n.getSelectionRange(),o=n.txtarea.selectionStart,i=n.txtarea.selectionEnd,t.shiftKey?((e=n.txtarea.value).length,o>2&&" "==e.substring(o-3,o)&&(n.setSelectionRange(o-3,i),n.remove())):(n.insert(" "),n.setCaretPosition(o+3)),t.preventDefault()},t.NatEditor.prototype.handleLineFeed=function(t){var e,o,i,n,a,r,s,d=this;for(i=d.txtarea.value,d.getSelectionRange(),e=d.txtarea.selectionStart,o=d.txtarea.selectionEnd;e>0&&13!=i.charCodeAt(e-1)&&10!=i.charCodeAt(e-1);)e--;n=i.substring(e,o),t.shiftKey?n.match(/^((?: {3})+)([AaIi]\.?|\*|\d+| ) /)&&(a=RegExp.$1+RegExp.$2.replace(/./g," ")+" "):n.match(/^( {3})+([AaIi]\.?|\*|\d+) *$/)?a="":n.match(/^((?: {3})+([AaIi]\.?|\*) )/)?a=RegExp.$1:n.match(/^(?:((?: {3})+)(\d+) )/)&&(a=RegExp.$1+(parseInt(RegExp.$2,10)+1)+" "),void 0!==a&&(""==a?(r=i.substr(0,e),s=i.substr(o),o=e):(r=i.substr(0,o),s=i.substr(o),a=d.oldIE?"\r\n"+a:"\n"+a),d.txtarea.value=r+a+s,d.setCaretPosition(r.length+a.length),d.undoManager.saveState("command"),t.preventDefault())},t.NatEditor.prototype.initAutoExpand=function(){var e,o=this,i=t(o.txtarea);o.helper=t('').appendTo("body"),e={fontFamily:i.css("fontFamily")||"",fontSize:i.css("fontSize")||"",fontWeight:i.css("fontWeight")||"",fontStyle:i.css("fontStyle")||"",fontStretch:i.css("fontStretch")||"",fontVariant:i.css("fontVariant")||"",letterSpacing:i.css("letterSpacing")||"",textTransform:i.css("textTransform")||"",textIndent:i.css("textIndent")||"",wordSpacing:i.css("wordSpacing")||"",lineHeight:i.css("lineHeight")||"",padding:i.css("padding")||"",textWrap:"unrestricted"},o.helper.css(e),"onpropertychange"in o.txtarea?"oninput"in o.txtarea?i.on("input.natedit keyup.natedit",(function(){o.autoResize()})):i.on("propertychange.natedit",(function(t){"value"===t.propertyName&&o.autoResize()})):i.on("input.natedit",(function(){o.autoResize()})),t(window).on("resize.natedit",(function(){o.autoResize()}))},t.NatEditor.prototype.initGui=function(){var e=this,o=t(e.txtarea);function i(o){var i=o.currentValues,n=t(o.input).data("permType");t.log("NATEDIT: currentValues="+i.join(", ")),e.setPermission(n,{allow:i.join(", ")})}function n(t){"details"===t.perms?e.showPermDetails(t.permType):(e.hidePermDetails(t.permType),e.setPermission(t.permType,t.perms))}e.container=o.wrap('
').parent(),e.container.attr("id",e.id),e.container.data("natedit",e),"undefined"!=typeof tinyMCE&&e.container.addClass("ui-natedit-wysiwyg-enabled"),foswiki.getPreference("NatEditPlugin").FarbtasticEnabled&&e.container.addClass("ui-natedit-colorpicker-enabled"),e.opts.resizable&&(void 0===e.txtarea.style.resize?o.resizable():o.css("resize","both")),e.form.find(".ui-natedit-details-container").not(".inited").addClass("inited").find("input").on("blur",(function(){var e=t(this);e.trigger("AddValue",e.val())})).textboxlist({onSelect:i,onDeselect:i,onClear:i,onReset:i,autocomplete:foswiki.getScriptUrl("rest","NatEditPlugin","users")}),e.form.find(".ui-natedit-permissions-form input[type=radio]").on("click",(function(){n(t(this).data())})),e.form.find(".ui-natedit-permissions-form input[type=radio]:checked").not(":disabled").each((function(){n(t(this).data())})),"undefined"!=typeof FoswikiTiny?(e.origSwitchToRaw=FoswikiTiny.switchToRaw,FoswikiTiny.switchToRaw=function(o){e.tinyMCEInstance=o,e.origSwitchToRaw(o),e.showToolbar(),t("#"+o.id+"_2WYSIWYG").remove()}):o.removeClass("foswikiWysiwygEdit")},t.NatEditor.prototype.switchToWYSIWYG=function(t){var e=this;void 0!==e.tinyMCEInstance&&(e.hideToolbar(),tinyMCE.execCommand("mceToggleEditor",null,e.tinyMCEInstance.id),FoswikiTiny.switchToWYSIWYG(e.tinyMCEInstance))},t.NatEditor.prototype.initToolbar=function(){var e=this,o=t(e.txtarea),i=foswiki.getScriptUrl("rest","JQueryPlugin","tmpl",{topic:e.opts.web+"."+e.opts.topic,load:e.opts.toolbarTemplate||e.opts.toolbar,name:e.opts.toolbar});t.loadTemplate({url:i}).done((function(i){e.toolbar=t(i.render({web:e.opts.web,topic:e.opts.topic})),e.container.prepend(e.toolbar),e.toolbar.find(".ui-natedit-buttons").buttonset({}).on("click",(function(o){return e.handleToolbarAction(o,t(o.target).closest("a:not(.ui-natedit-menu-button)")),!1})),e.toolbar.find(".ui-natedit-button").button().on("click",(function(o){return e.handleToolbarAction(o,t(this)),!1})),e.toolbar.find(".ui-natedit-menu-button").not(".ui-button").button().end().button("option",{icons:{secondary:"ui-icon-triangle-1-s"}}).on("mousedown",(function(o){var i=t(this),n=void 0===i.data("menu")?i.next():t(e.container.find(i.data("menu"))),a=n.data("state")||!1;return n.data("menu-button",this),e.hideMenus(),a?i.removeClass("ui-state-highlight"):(i.addClass("ui-state-highlight"),n.show().position({my:"left top",at:"left bottom+10",of:i}),n.data("state",!0)),!1})).on("click",(function(){return!1})),e.toolbar.find(".ui-natedit-menu").each((function(){var o,i=t(this),n=!1;i.menu().on("mouseleave",(function(){o=window.setTimeout((function(){}),1e3)})).on("mouseenter",(function(){void 0!==o&&(window.clearTimeout(o),o=void 0)})).on("menuselect",(function(t,o){t.target=i.data("menu-button"),n&&(e.hideMenus(),e.handleToolbarAction(t,o.item.children("a:first")))})).children().on("mouseup",(function(t){n=!0,i.menu("select",t),n=!1})).on("click",(function(){return!1}))})),t(e.container).on("click",(function(){e.hideMenus()})),e.opts.autoHideToolbar&&(e.toolbar.hide(),o.focus((function(){window.setTimeout((function(){e.showToolbar()}))})),o.blur((function(){window.setTimeout((function(){e.hideToolbar()}))}))),e.undoManager.updateGui(),t(window).trigger("resize")}))},t.NatEditor.prototype.showToolbar=function(){var e,o=this;void 0===o.toolbar&&o.initToolbar(),void 0!==o.toolbar&&(e=o.txtarea.value,o.toolbar.show(),o.txtarea.value=e,o.opts.autoMaxExpand&&t(window).trigger("resize"))},t.NatEditor.prototype.hideToolbar=function(){var e,o=this;o.toolbar&&(e=o.txtarea.value,o.toolbar.hide(),o.txtarea.value=e,o.opts.autoMaxExpand&&t(window).trigger("resize"))},t.NatEditor.prototype.setPermission=function(e,o){var i,n;for(i in this.form.find(".permset_"+e).each((function(){t(this).val("undefined")})),o)o.hasOwnProperty(i)&&(n=o[i],t.log("NATEDIT: setting ."+i+"_"+e+"="+n),this.form.find("."+i+"_"+e).val(n))},t.NatEditor.prototype.showPermDetails=function(e){var o,i=this,n=[];i.form.find(".ui-natedit-"+e+"-perms .ui-natedit-details-container").slideDown(300),i.form.find("input[name='Local+PERMSET_"+e.toUpperCase()+"_DETAILS']").each((function(){(o=t(this).val())&&""!=o&&n.push(o)})),n=n.join(", "),t.log("NATEDIT: showPermDetails - names="+n),i.setPermission(e,{allow:n})},t.NatEditor.prototype.hidePermDetails=function(t){this.form.find(".ui-natedit-"+t+"-perms .ui-natedit-details-container").slideUp(300),this.setPermission(t)},t.NatEditor.prototype.showMessage=function(e,o,i){t.pnotify({title:i,text:o,hide:"error"!==e,type:e,sticker:!1,closer_hover:!1,delay:"error"===e?8e3:1e3})},t.NatEditor.prototype.hideMessages=function(){this.form.find(".jqTabGroup a.error, input.error").removeClass("error"),this.form.find("label.error").hide(),t.pnotify_remove_all()},t.NatEditor.prototype.extractErrorMessage=function(e){return e&&e.match(/^"+t.i18n("Saving ...")+""}),o.form.submit()};return i.length?((e=i.dialog("option","buttons"))[0].click=function(){i.find(".jqCaptcha").data("captcha").validate()&&(i.dialog("close"),n())},i.dialog("option","buttons",e).dialog("open")):n(),!1})),o.form.find(".ui-natedit-checkpoint").on("click",(function(e){var i,n=o.opts.topic,a=document.title,r=t("#editcaptcha"),s=function(){var i=t(e.currentTarget).attr("href").replace(/^#/,"");o.form.validate().form()&&(o.beforeSubmit(i),n.match(/AUTOINC|XXXXXXXXXX/)?o.form.submit():o.form.ajaxSubmit({url:foswiki.getScriptUrl("rest","NatEditPlugin","save"),beforeSubmit:function(){o.hideMessages(),document.title="Saving ...",t.blockUI({message:""+t.i18n("Saving ...")+"
"})},error:function(t,e,i){var n=o.extractErrorMessage(t.responseText||e);o.showMessage("error",n)},complete:function(e,o){var i=e.getResponseHeader("X-Foswiki-Validation");i&&t("input[name='validation_key']").each((function(){t(this).val("?"+i)})),document.title=a,t.unblockUI()}}))};return r.length?((i=r.dialog("option","buttons"))[0].click=function(){r.find(".jqCaptcha").data("captcha").validate()&&(r.dialog("close"),s())},r.dialog("option","buttons",i).dialog("open")):s(),!1})),o.form.find(".ui-natedit-preview").on("click",(function(){return o.form.validate().form()&&(o.beforeSubmit("preview"),o.form.ajaxSubmit({url:foswiki.getScriptUrl("rest","NatEditPlugin","save"),beforeSerialize:function(){o.form.find("input[name=redirectto]").prop("disabled",!0)},beforeSubmit:function(){o.hideMessages(),t.blockUI({message:""+t.i18n("Loading preview ...")+"
"})},error:function(e,i,n){var a=o.extractErrorMessage(e.responseText||i);t.unblockUI(),o.showMessage("error",a)},success:function(e,o){var i=t(window),n=Math.round(parseInt(.6*i.height(),10)),a=Math.round(parseInt(.6*i.width(),10));t.unblockUI(),a<640&&(a=640),e=e.replace(/%width%/g,a).replace(/%height%/g,n),t("body").append(e)},complete:function(){o.form.find("input[name=redirectto]").prop("disabled",!1)}})),!1})),o.form.find(".ui-natedit-cancel").on("click",(function(){return o.hideMessages(),o.beforeSubmit("cancel"),o.form.submit(),!1})),o.form.find(".ui-natedit-replaceform").on("click",(function(){return o.beforeSubmit("replaceform"),o.form.submit(),!1})),o.form.find(".ui-natedit-addform").on("click",(function(){return o.beforeSubmit("addform"),o.form.submit(),!1})),e=t.extend({},o.form.metadata({type:"attr",name:"validate"})),o.form.validate({ignore:"div, .foswikiIgnoreValidation",meta:"validate",invalidHandler:function(e,i){var n=i.numberOfInvalids(),a=t(i.currentForm);if("action_cancel"==a.find("input[name*='action_'][value='Cancel']").attr("name"))return i.currentForm.submit(),void(i.errorList=[]);n?(t.unblockUI(),o.showMessage("error",t.i18n("One or more fields have not been filled correctly")),t.each(i.errorList,(function(){var e=t(this.element),o=e.parents(".jqTabPane:first").data("tabPane");e.parents(".jqTab").each((function(){var e=t(this).attr("id");o.getNaviOfTab("#"+e).addClass("error")}))}))):(o.hideMessages(),a.find(".jqTabGroup a.error").removeClass("error"))},rules:e,ignoreTitle:!0,errorPlacement:function(e,o){o.is("[type=checkbox],[type=radio]")?t("").appendTo(o.parents("tr:first")).append(e):e.insertAfter(o)}}),t.validator.addClassRules("foswikiMandatory",{required:!0}))},t.NatEditor.prototype.handleToolbarAction=function(t,e){var o,i,n=this,a=function(){},r=function(){},s=function(){},d=function(){return{web:n.opts.web,topic:n.opts.topic,selection:n.getSelection()}};void 0!==e&&0!==e.length&&(void 0!==(o=e.data()).markup&&(o.value=n.opts[o.markup]),void 0!==o.value&&("line"===o.type?n.insertLineTag(o.value):n.insertTag(o.value)),void 0!==o.dialog&&(void 0!==o.okayHandler&&"function"==typeof n[o.okayHandler]&&(a=n[o.okayHandler]),void 0!==o.cancelHandler&&"function"==typeof n[o.cancelHandler]&&(r=n[o.cancelHandler]),void 0!==o.openHandler&&"function"==typeof n[o.openHandler]&&(s=n[o.openHandler]),void 0!==o.optsHandler&&"function"==typeof n[o.optsHandler]&&(d=n[o.optsHandler]),i=d.call(n),n.dialog({name:o.dialog,open:function(t){s.call(n,t,i)},data:i,event:t,modal:o.modal,okayText:o.okayText,cancelText:o.cancelText}).then((function(t){a.call(n,t)}),(function(t){r.call(n,t)}))),void 0===o.handler||"function"!=typeof n[o.handler]||n[o.handler].call(n,t,e))},t.NatEditor.prototype.hideMenus=function(){this.container.find(".ui-natedit-menu").each((function(){var e=t(this);t(e.data("menu-button")).removeClass("ui-state-highlight"),e.hide().data("state",!1)}))},t.NatEditor.prototype.insert=function(t){var e,o,i,n,a,r=this;r.getSelectionRange(),e=r.txtarea.selectionStart,o=r.txtarea.selectionEnd,n=(i=r.txtarea.value).substring(0,e),a=i.substring(o),r.txtarea.value=n+t+a,r.setCaretPosition(e),r.undoManager.saveState("command")},t.NatEditor.prototype.remove=function(){var t,e,o,i,n=this;return n.getSelectionRange(),t=n.txtarea.selectionStart,e=n.txtarea.selectionEnd,i=(o=n.txtarea.value).substring(t,e),n.txtarea.value=o.substring(0,t)+o.substring(e),n.setSelectionRange(t,t),n.undoManager.saveState("command"),i},t.NatEditor.prototype.getSelectionRange=function(){var t,e,o,i,n,a=this;return a.oldIE&&(t=a.txtarea.value,"",n=(e=document.selection.createRange()).text||"",(o=e.duplicate()).moveToElementText(a.txtarea),e.text="",i=o.text.indexOf(""),e.moveStart("character",-1),e.text=n,i<0&&(i=t.length,n=""),a.txtarea.selectionStart=i,a.txtarea.selectionEnd=""==n?i:i+n.length),[a.txtarea.selectionStart,a.txtarea.selectionEnd]},t.NatEditor.prototype.getSelection=function(){var t,e,o=this;return o.getSelectionRange(),t=o.txtarea.selectionStart,e=o.txtarea.selectionEnd,o.txtarea.value.substring(t,e)},t.NatEditor.prototype.getSelectionLines=function(){var t,e,o,i=this;for(i.getSelectionRange(),t=i.txtarea.selectionStart,e=i.txtarea.selectionEnd,o=i.txtarea.value;t>0&&13!=o.charCodeAt(t-1)&&10!=o.charCodeAt(t-1);)t--;for(;e")).replace(/\$amp/g,"&")).replace(/\$dollar/g,"$")},t.NatEditor.prototype.autoMaxExpand=function(){var e=this;window.setTimeout((function(){e.fixHeight(),t(window).one("resize.natedit",(function(){e.autoMaxExpand()}))}))},t.NatEditor.prototype.fixHeight=function(){var e,o,i=this,n="undefined"!=typeof tinyMCE&&tinyMCE.activeEditor?t(tinyMCE.activeEditor.contentAreaContainer):null,a=i.form.find(".natEditBottomBar");n&&!tinyMCE.activeEditor.getParam("fullscreen_is_enabled")&&n.is(":visible")?(n.closest(".mceLayout").height("auto"),e=n.children("iframe")):e=t(i.txtarea),e&&e.length&&(o=(a.length?a.position().top:t(window).height()||window.innerHeight)-e.position().top-(e.outerHeight(!0)-e.height())-(i.container.outerHeight(!0)-i.container.height())-4,i.opts.minHeight&&on.opts.maxHeight?(i=n.opts.maxHeight,a.css("overflow-y","scroll")):a.css("overflow-y","hidden"),a.height(i))})))},t.NatEditor.prototype.htmlEntities=function(t){var e,o={"&":"&","<":"<",">":">",'"':"""};for(e in o)o.hasOwnProperty(e)&&(t=t.replace(new RegExp(e,"g"),o[e]));return t},t.NatEditor.prototype.dialog=function(e){var o=this,i={url:void 0,title:t.i18n("Confirmation required"),okayText:t.i18n("OK"),okayIcon:"ui-icon-check",cancelText:t.i18n("Cancel"),cancelIcon:"ui-icon-cancel",width:"auto",modal:!0,position:{my:"center",at:"center",of:window},open:function(){},data:{web:o.opts.web,topic:o.opts.topic,selection:o.getSelection()}};return"string"==typeof e&&(e={data:{text:e}}),void 0===e.url&&void 0!==e.name&&(e.url=foswiki.getScriptUrl("rest","JQueryPlugin","tmpl",{topic:o.opts.web+"."+o.opts.topic,load:"editdialog",name:e.name})),void 0!==(e=t.extend({},i,e)).event&&(e.position={my:"center top",at:"left bottom+30",of:e.event.target}),o.hideMessages(),t.Deferred((function(i){t.loadTemplate({url:e.url,name:e.name}).then((function(n){t(n.render(e.data)).dialog({buttons:[{text:e.okayText,icons:{primary:e.okayIcon},click:function(){return t(this).dialog("close"),i.resolve(this),!0}},{text:e.cancelText,icons:{primary:e.cancelIcon},click:function(){return t(this).dialog("close"),i.reject(),!1}}],open:function(n){var a=t(this),r=a.data("title");void 0!==r&&a.dialog("option","title",r),a.find("input").on("keydown",(function(e){var o=t(this);o.is(".ui-autocomplete-input")&&o.data("ui-autocomplete").menu.element.is(":visible")||13==e.keyCode&&(e.preventDefault(),a.dialog("close"),i.resolve(a[0]))})),e.open.call(o,this,e.data)},close:function(e,o){t(this).remove()},show:"fade",modal:e.modal,draggable:!0,resizable:!1,title:e.title,width:e.width,position:e.position})}),(function(t){o.showMessage("error",t.responseText)}))})).promise()},t.NatEditor.prototype.handleSearchReplace=function(e){var o,i=this,n=t(e),a=n.find("input[name='search']").val(),r=n.find("input[name='replace']").val(),s=!!n.find("input[name='ignorecase']:checked").length;t.log("NATEDIT: handleSearchReplace, search='"+a+" 'replace='"+r+"' ignoreCase=",s),a.length&&((o=i.searchReplace(a,r,s))?i.showMessage("info",t.i18n("replaced %count% time(s)",{count:o})):i.showMessage("warning",t.i18n("search string '%search%' not found",{search:a})))},t.NatEditor.prototype.searchReplace=function(e,o,i){var n,a,r=this,s=r.txtarea.scrollTop,d=r.getCaretPosition(),l=r.txtarea.value,c=0;for(i?(n=l.toLowerCase(),e=e.toLowerCase()):n=l,a=n.indexOf(e);-1!=a;)c++,l=l.substr(0,a)+o+l.substr(a+e.length),a=(n=n.substr(0,a)+o+n.substr(a+e.length)).indexOf(e,a+o.length);return t.log("NATEDIT: count=",c),c&&(r.txtarea.value=l,r.setCaretPosition(d),r.txtarea.scrollTop=s,r.opts.autoMaxExpand&&t(window).trigger("resize"),r.undoManager.saveState("command")),c},t.NatEditor.prototype.handleInsertTable=function(e){var o=t(e),i=o.find("input[name='rows']").val(),n=o.find("input[name='cols']").val(),a=o.find("input[name='heads']").val(),r="true"===o.find("input[name='editable']:checked").val();return this.insertTable({heads:a,rows:i,cols:n,editable:r})},t.NatEditor.prototype.handleInsertLink=function(e){var o=t(e),i={},n=o.find(".jqTab.current");if(n.is(".topic"))i={web:n.find("input[name='web']").val(),topic:n.find("input[name='topic']").val(),text:o.find("input[name='linktext_topic']").val()};else{if(!n.is(".external"))return;i={url:n.find("input[name='url']").val(),text:o.find("input[name='linktext_external']").val()}}return this.insertLink(i)},t.NatEditor.prototype.handleInsertAttachment=function(e){var o=t(e);return this.insertLink({web:o.find("input[name='web']").val(),topic:o.find("input[name='topic']").val(),file:o.find("input[name='file']").val(),text:o.find("input[name='linktext_attachment']").val()})},t.NatEditor.prototype.initColorDialog=function(e,o){var i=t(e),n=(this.getSelection(),i.find("input[name='color']")[0]);return this.fb=t.farbtastic(i.find(".ui-natedit-colorpicker")).setColor("#fafafa").linkTo(n),!1},t.NatEditor.prototype.parseColorSelection=function(){var t=this,e=t.getSelection()||"#ff0000";return{web:t.opts.web,topic:t.opts.topic,selection:e}},t.NatEditor.prototype.openDatePicker=function(e,o){var i,n,a=this,r=a.getSelection();if(""===r)n=new Date;else try{n=new Date(r)}catch(e){a.showMessage("error",t.i18n("invalid date '%date%'",{date:r}))}return void 0===a.datePicker&&(i=t('').css("position","absolute").appendTo("body").hide(),a.overlay=t("").addClass("ui-widget-overlay ui-front").hide().appendTo("body").on("click",(function(){a.datePicker.hide(),a.overlay.hide()})),a.datePicker=i.datepicker({onSelect:function(){var t=a.datePicker.datepicker("getDate");a.datePicker.hide(),a.overlay.hide(),a.remove(),a.insertTag(["",a.formatDate(t),""])}}).draggable({handle:".ui-widget-header"}).zIndex(a.overlay.zIndex()+1)),a.overlay.show(),a.datePicker.datepicker("setDate",n),a.datePicker.show().focus().position({my:"center",at:"center",of:window}),!1},t.NatEditor.prototype.formatDate=function(t){return(t=t.toDateString().split(/ /))[2]+" "+t[1]+" "+t[3]},t.NatEditor.prototype.handleInsertColor=function(t){var e=this,o=e.fb.color;e.remove(),e.insertTag(["",o,""])},t.NatEditor.prototype.handleUndo=function(t){this.undoManager.undo()},t.NatEditor.prototype.handleRedo=function(t){this.undoManager.redo()},t.NatEditor.prototype.handleSortAscending=function(t,e){this.sortSelection("asc")},t.NatEditor.prototype.handleSortDescending=function(t,e){this.sortSelection("desc")},t.NatEditor.prototype.sortSelection=function(e){var o,i,n,a,r,s,d,l=this,c=!0;for(o=l.getSelectionLines().split(/\r?\n/),i=[],n=[],d=0;d i?1:0})),"desc"==e&&(i=i.reverse()),t.map(n,(function(t){i.splice(t.pos,0,t)})),o=[],t.map(i,(function(t){o.push(t.prefix+t.line)})),o=o.join("\n"),t.log("NATEDIT: result=\n'"+o+"'"),l.remove(),l.insertTag(["",o,""])},t.NatEditor.prototype.initLinkDialog=function(e,o){var i,n,a=this,r=t(e),s=0,d=r.find(".ui-natedit-attachment-thumbnail"),l=r.find(".jqTab.current");0===l.length&&(l=r),r.find("input[name='web']").each((function(){t(this).autocomplete({source:foswiki.getScriptUrl("view",a.opts.systemWeb,"JQueryAjaxHelper",{section:"web",skin:"text",contenttype:"application/json"})})})),r.find("input[name='topic']").each((function(){t(this).autocomplete({source:function(e,o){n&&n.abort(),n=t.ajax({url:foswiki.getScriptUrl("view",a.opts.systemWeb,"JQueryAjaxHelper"),data:t.extend(e,{section:"topic",skin:"text",contenttype:"application/json",baseweb:l.find("input[name='web']").val()}),dataType:"json",autocompleteRequest:++s,success:function(t,e){this.autocompleteRequest===s&&o(t)},error:function(t,e){this.autocompleteRequest===s&&o([])}})}})})),r.find(".natEditAttachmentSelector").each((function(){t(this).autocomplete({source:function(e,o){n&&n.abort(),n=t.ajax({url:foswiki.getScriptUrl("rest","NatEditPlugin","attachments"),data:t.extend(e,{topic:l.find("input[name='web']").val()+"."+l.find("input[name='topic']").val()}),dataType:"json",autocompleteRequest:++s,success:function(t,e){this.autocompleteRequest===s&&o(t)},error:function(t,e){this.autocompleteRequest===s&&o([])}})},select:function(t,e){d.length&&d.attr("src",e.item.img).show()},change:function(t,e){d.length&&(e.item?d.attr("src",e.item.img).show():d.hide())}}).data("ui-autocomplete")._renderItem=function(e,o){if(void 0!==o.label)return t("").data("item.autocomplete",o).append(""+(void 0!==o.img?" | ":"")+""+o.label+" "+o.comment+" | ").appendTo(e)}})),void 0!==o.type&&void 0!==(i=r.find(".jqTab."+o.type).attr("id"))&&window.setTimeout((function(){window.location.hash="!"+i}))},t.NatEditor.prototype.initAttachmentsDialog=function(e,o){var i=this,n=t(e);t.log("NATEDIT: initAttachmentsDialog on elem=",e),i.initLinkDialog(e,o),n.on("dialogclose",(function(){i.hideMessages()})),n.find(".ui-natedit-uploader").each((function(){var e=n.find("input[name='file']"),o=n.find(".ui-natedit-uploader-button"),a=n.find(".ui-natedit-uploader-cancel"),r=!1;i.uploader=t(this).uploader({dragdrop:!1,multi_selection:!1,autoStart:!0,browseButton:".ui-natedit-uploader-button",stopButton:".ui-natedit-uploader-cancel"}).data("uploader"),i.uploader.on("StateChanged",(function(){var n=i.uploader.files[0];i.uploader.state==plupload.STARTED&&(t.log("started upload"),e.attr("disabled","disabled").val(t.i18n("uploading ...")),o.hide(),a.show(),i.hideMessages()),i.uploader.state==plupload.STOPPED&&(t.log("upload stopped"),r||void 0===n||100!=n.percent?(e.val(t.i18n("abording transfer ...")),window.setTimeout((function(){e.removeAttr("disabled").val("").focus()}),1e3)):e.removeAttr("disabled").val(n.name).focus(),o.show(),a.hide())})),i.uploader.on("Error",(function(e,o){var n,a=t.parseJSON(o.response);r=!0,n=void 0!==a.error?a.error.message:o,i.showMessage("error",n,t.i18n("Error during upload"))}))}))},t.NatEditor.prototype.cancelAttachmentsDialog=function(e,o){t(e);t.log("NATEDIT: cancelAttachmentsDialog on elem=",e),void 0!==this.uploader?(t.log("stopping uploader"),this.uploader.trigger("Stop")):t.log("no uploader found")},t.NatEditor.prototype.parseLinkSelection=function(){var t=this,e=t.getSelection(),o=t.opts.web,i=t.opts.topic,n="",a="",r="topic",s="(?:file|ftp|gopher|https?|irc|mailto|news|nntp|telnet|webdav|sip|edit)://[^\\s]+?";return e.match(/\s*\[\[(.*?)\]\]\s*/)?(e=RegExp.$1).match("^("+s+")(?:\\]\\[(.*))?$")?(a=RegExp.$1,e=RegExp.$2||"",r="external"):e.match(/^(?:%ATTACHURL(?:PATH)?%\/)(.*?)(?:\]\[(.*))?$/)?(n=RegExp.$1,e=RegExp.$2,r="attachment"):e.match(/^(?:%PUBURL(?:PATH)?%\/)(.*)\/(.*?)\/(.*?)(?:\]\[(.*))?$/)?(o=RegExp.$1,i=RegExp.$2,n=RegExp.$3,e=RegExp.$4,r="attachment"):e.match(/^(?:(.*)\.)?(.*?)(?:\]\[(.*))?$/)?(o=RegExp.$1||o,i=RegExp.$2,e=RegExp.$3||""):(i=e,e=""):e.match("^ *"+s)?(a=e,e="",r="external"):e.match(/^\s*%IMAGE\{"(.*?)"(?:.*?topic="(?:([^\s\.]+)\.)?(.*?)")?.*?\}%\s*$/)?(o=RegExp.$2||o,i=RegExp.$3||i,n=RegExp.$1,e="",r="attachment"):e.match(/^\s*([A-Z][^\s\.]*)\.(A-Z.*?)\s*$/)&&(o=RegExp.$1||o,i=RegExp.$2,e="",r="topic"),{selection:e,web:o,topic:i,file:n,url:a,type:r}},t.NatEditor.defaults={toolbarTemplate:"edittoolbar",toolbar:"edittoolbar",h1Markup:["---+!! ","%TOPIC%",""],h2Markup:["---++ ","Headline text",""],h3Markup:["---+++ ","Headline text",""],h4Markup:["---++++ ","Headline text",""],h5Markup:["---+++++ ","Headline text",""],h6Markup:["---++++++ ","Headline text",""],verbatimMarkup:["\n","Insert non-formatted text here","\n"],quoteMarkup:["\n","Insert quote here","\n "],boldMarkup:["*","Bold text","*"],italicMarkup:["_","Italic text","_"],monoMarkup:["=","Monospace text","="],underlineMarkup:["","Underlined text",""],strikeMarkup:["","Strike through text",""],superscriptMarkup:["","superscript text",""],subscriptMarkup:["","subscript text",""],leftMarkup:['\n',"Align left","\n "],centerMarkup:['\n',"Center text","\n "],rightMarkup:['\n',"Align right","\n "],justifyMarkup:['\n',"Justify text","\n "],numberedListMarkup:[" 1 ","enumerated item",""],bulletListMarkup:[" * ","bullet item",""],indentMarkup:[" ","",""],outdentMarkup:["","",""],mathMarkup:['\n',"\\sum_{x=1}^{n}\\frac{1}{x}","\n"],signatureMarkup:["-- ",NaN],dataFormMarkup:["","| *Name* | *Type* | *Size* | *Values* | *Description* | *Attributes* | *Default* |","\n"],horizRulerMarkup:["","---","\n"],autoHideToolbar:!1,autoMaxExpand:!1,minHeight:0,maxHeight:0,autoResize:!1,resizable:!1,showToolbar:!0},t.fn.natedit=function(e){var o=t.extend({},t.NatEditor.defaults,e);return this.is(".foswikiWysiwygEdit")&&"undefined"!=typeof tinyMCE&&(o.showToolbar=!1),this.each((function(){t.data(this,"natedit")||t.data(this,"natedit",new t.NatEditor(this,o))}))},t((function(){t.NatEditor.defaults.web=foswiki.getPreference("WEB"),t.NatEditor.defaults.topic=foswiki.getPreference("TOPIC"),t.NatEditor.defaults.systemWeb=foswiki.getPreference("SYSTEMWEB"),t.NatEditor.defaults.scriptUrl=foswiki.getPreference("SCRIPTURL"),t.NatEditor.defaults.pubUrl=foswiki.getPreference("PUBURL"),t.NatEditor.defaults.signatureMarkup=["-- ","[["+foswiki.getPreference("WIKIUSERNAME")+"]]"," - "+foswiki.getPreference("SERVERTIME")],t(".natedit").livequery((function(){t(this).natedit()}))}))}(jQuery);
|