var XWiki=function(d){d.InputWithTitle=Class.create({initialize:function(a){this.input=a;this.input.observe("focus",this._onFocus.bindAsEventListener(this));this.input.observe("blur",this._onBlur.bind(this));document.observe("xwiki:class:save",this._onSave.bind(this));this._onBlur()},_onFocus:function(a){this.input.hasClassName("unset")&&(this.input.value="",this.input.removeClassName("unset"))},_onBlur:function(){""==this.input.value&&(this.input.addClassName("unset"),this.input.value=this.input.title)},
_onSave:function(){this._onFocus();this._onBlur.bind(this).defer()}});d.AutoResizeInput=Class.create({initialize:function(a){this.input=a;a=["blur","change","cut","keyup","paste"];for(var b=0;b<a.length;b++)this.input.observe(a[b],this._resize.bindAsEventListener(this));this.input.observe("keypress",this._reserveSpace.bindAsEventListener(this));this.meter=new Element("pre",{"class":"autoResize-meter inherit"});this.meter.appendChild(document.createTextNode(""));this.input.addClassName("inherit").insert({after:this.meter});
this._resize()},_resize:function(a){a?this._resize.bind(this).defer():(this.meter.firstChild.data=this.input.value||" ",this.input.setStyle({width:this.meter.offsetWidth+6+"px"}))},_reserveSpace:function(a){for(var b=[8,46,35,36,37,38,39,40],c=0;c<b.length;c++)if(a.keyCode==b[c])return;this.input.setStyle({width:this.input.offsetWidth+6+"px"})}});d.ToggleSelect=Class.create({initialize:function(a){this.select=a;this.select.hide();this.off=a.options[0];this.on=a.options[1];this.switcher=new Element("span",
{"class":this.select.className,title:this.select.title});this.switcher.removeClassName("toggle").addClassName("toggle-switcher");this.switcher.appendChild(document.createTextNode(""));this.switcher.observe("click",this._toggle.bind(this));this.select.insert({after:this.switcher});this._update()},_toggle:function(){this.on.selected?this.off.selected=!0:this.on.selected=!0;this._update()},_update:function(){this.switcher.firstChild.nodeValue=this.select.options[this.select.selectedIndex].text}});document.observe("xwiki:actions:save",
function(a){document.fire("xwiki:class:save",{originalEvent:a})}.bindAsEventListener(window));return d}(XWiki||{});
XWiki=function(d){d.FormField=Class.create({initialize:function(a){this.container=a},enhance:function(a){this.container.insert({top:this._createToolBox()});a?(this.container.addClassName("loading"),new Ajax.Request(a,{method:"get",onSuccess:this._display.bind(this)})):this._display(null)},getContainer:function(){return this.container},getViewer:function(){return this.container.down(".field-viewer")},getConfig:function(){return this.container.down(".field-config")},getToolBox:function(){return this.container.down(".toolBox")},
getName:function(){this.container._typeInput||(this.container._typeInput=this.container.down("input[type\x3dhidden]"));return this.container._typeInput.name.substring(5)},getPropertyId:function(a){return"field-"+this.getName()+"_"+a},_display:function(a){this.container.parentNode&&(a&&(this.container.removeClassName("loading"),this._injectHTML(a.responseText)),this.getToolBox().insert({top:this._createConfigIcon()}),this._onConfigure(),document.fire("xwiki:class:displayField",{field:this,"new":!!a}),
this._twoColumnConfigDisplay())},_injectHTML:function(a){var b=new Element("div");b.innerHTML=a;var c=document.body.previous("head");b.select("link").each(function(e){c.insert(e)});b.select("script").each(function(e){e.src&&c.insert(new Element("script",{type:e.type,src:e.readAttribute("src")}));e.remove()});this.container.insert(b)},_createToolBox:function(){var a=new Element("img",{src:"/xwiki/bin/download/AppWithinMinutes/ClassEditSheet/bulletcross.png?rev\x3d1.6",alt:"Delete",title:"Delete"});
a.observe("click",this._onDelete.bindAsEventListener(this));var b=new Element("div",{"class":"toolBox"});b.insert(a);return b},_createConfigIcon:function(){return(new Element("img")).observe("click",this._onConfigure.bindAsEventListener(this))},_onConfigure:function(a){a=a?a.element():this.getToolBox().down("img");var b=this.getConfig();b.visible()?(b.hide(),a.alt=a.title="Configure",a.src="/xwiki/resources/icons/silk/bullet_wrench.png?cache-version\x3d1759477984000",this._maybePreview()):(b.show(),
a.alt="Preview",a.title="Hide configuration panel and apply changes",a.src="/xwiki/bin/download/AppWithinMinutes/ClassEditSheet/bullettick.png?rev\x3d1.6",this._maybeSavePreviewData())},_onDelete:function(a){new d.widgets.ConfirmationBox({onYes:this._onConfirmedDelete.bind(this)},{confirmationText:"Are you sure you want to delete this property?"})},_onConfirmedDelete:function(){this.container.remove();document.fire("xwiki:class:deleteField",{field:this})},_maybeSavePreviewData:function(){this.previewData||
this._savePreviewData();this._renameListener||(this._renameListener=function(a){a.memo.field.getContainer()==this.container&&this._savePreviewData()}.bindAsEventListener(this),document.observe("xwiki:class:renameField",this._renameListener))},_savePreviewData:function(){this.previewData=this._asHash();["name","prettyName","hint","required","number"].each(function(a){this.previewData.unset(this.getPropertyId(a))}.bind(this));this.previewData.set("preview",!0);this.previewData.set("xpage","plain")},
_maybePreview:function(){if(this.previewData){var a=new Hash;this._asHash().each(function(c){var e=this.previewData.get(c.key),f;if(f=void 0!=e)f=c.value,e=typeof f==typeof e?f.join?f.join()==e.join():f==e:!1,f=!e;f&&a.set(c.key,c.value)}.bind(this));var b=a.keys();(1<b.length||1==b.length&&!b[0].endsWith("_0_"+this.getName()))&&this._preview(this.previewData.clone().update(a))}},_preview:function(a){var b=this.getViewer().down("dd");b&&(b.addClassName("loading"),new Ajax.Request(window.location.href,
{parameters:a.toQueryString(),onSuccess:function(c){b.removeClassName("loading");b.update(c.responseText);this.previewData=a;document.fire("xwiki:class:previewField",{field:this});document.fire("xwiki:dom:updated",{elements:[b]})}.bind(this)}))},_asHash:function(){document.fire("xwiki:class:save",{originalEvent:{memo:{}}});var a=this.container.select("input","textarea","select");return new Hash(Form.serializeElements(a,{hash:!0}))},_twoColumnConfigDisplay:function(){var a=this.getConfig(),b=new Element("div",
{"class":a.className});a.insert({before:b});b.insert(a);b.hide();a.className="leftColumn";a.show();var c=new Element("dl",{"class":"rightColumn"});b.insert(c);var e=[];a.select("dt").each(function(h){h.visible()&&e.push(h)});for(a=Math.ceil(e.length/2);a<e.length;a++){var f=e[a],g=f.next();c.insert(f);g&&"dd"==g.tagName.toLowerCase()&&c.insert(g)}b.insert(new Element("div",{style:"clear: left"}))}});d.FormFieldNameManager=Class.create({initialize:function(){document.observe("xwiki:class:displayField",
this._maybeGenerateFieldName.bind(this));document.observe("xwiki:document:saved",this._maybeRenameFields.bind(this))},_maybeGenerateFieldName:function(a){if(a.memo["new"]){a=a.memo.field;for(var b=$(a.getPropertyId("name")),c=1;$("type-"+b.value+c++););b.value+=c-1;this._maybeRenameField(a)}},_maybeRenameFields:function(){$("fields").childElements().each(function(a){this._maybeRenameField(new d.FormField(a))}.bind(this))},_maybeRenameField:function(a){var b=a.getName(),c=$(a.getPropertyId("name")).value;
b!=c&&(this._maybeRenameElement(b,c,a.getContainer()),a.getContainer().descendants().each(this._maybeRenameElement.bind(this,b,c)),document.fire("xwiki:class:renameField",{field:a}))},_maybeRenameElement:function(a,b,c){["id","name","for"].each(function(e){var f=c.readAttribute(e)||"";if(f.startsWith("xwiki-form-"+a))f="xwiki-form-"+b+f.substring(11+a.length);else if(f.endsWith("_0_"+a))f=f.substring(0,f.length-a.length)+b;else{var g=f.indexOf("-")+1;0<g&&(f.substring(g)==a||f.substring(g).startsWith(a+
"_"))&&(f=f.substring(0,g)+b+f.substring(g+a.length))}""!=f&&c.writeAttribute(e,f)})}});d.FormFieldPrettyNameManager=Class.create({initialize:function(){document.observe("xwiki:class:displayField",this._onDisplayField.bindAsEventListener(this))},_onDisplayField:function(a){var b=a.memo.field;a=$(b.getPropertyId("prettyName"));var c=a.up("dd");c.hide();c=c.previous("dt");c.hide();a.title||(c=c.down("label"),a.title=c.textContent||c.innerText);a.ariaLabel="Pretty Name";b=b.getViewer().down("label");
b.writeAttribute("for","");b.removeChild(b.lastChild);b.insert(a);new d.InputWithTitle(a);new d.AutoResizeInput(a)}});d.FormFieldDefaultValueManager=Class.create({initialize:function(){var a=this._enhanceFieldDefaultValue.bindAsEventListener(this);document.observe("xwiki:class:displayField",a);document.observe("xwiki:class:previewField",a);document.observe("xwiki:class:save",this._onSave.bind(this))},_enhanceFieldDefaultValue:function(a){a=a.memo.field;var b=a.getName();a.getViewer().select("dd :input").each(function(c){!c.title&&
c.name.endsWith("_0_"+b)&&(c.title="Default value");c.ariaLabel="Default value"})},_onSave:function(){$("fields").childElements().each(function(a){this._maybeRenameDefaultValue(new d.FormField(a))}.bind(this))},_maybeRenameDefaultValue:function(a){var b=a.getName(),c=$(a.getPropertyId("name")).value;b!=c&&a.getViewer().select("input","textarea","select").each(function(e){e.name.endsWith("_0_"+b)&&(e.name=e.name.substring(0,e.name.length-b.length)+c)})}});d.FormFieldHintManager=Class.create({initialize:function(){document.observe("xwiki:class:displayField",
this._onDisplayField.bindAsEventListener(this))},_onDisplayField:function(a){a=a.memo.field;var b=$(a.getPropertyId("hint"));if(b){b.addClassName("xHint");b.title||(b.title="Hint",b.ariaLabel="Hint");var c=b.up("dd"),e=c.previous("dt");a.getViewer().down("label").insert({after:b});e.remove();c.remove();new d.InputWithTitle(b);new d.AutoResizeInput(b)}}});d.FormFieldRequiredManager=Class.create({initialize:function(){document.observe("xwiki:class:displayField",this._onDisplayField.bindAsEventListener(this))},
_onDisplayField:function(a){a=a.memo.field;if($(a.getPropertyId("required"))){a=a.getViewer().down("label");var b=new Element("div",{"class":"labelLine"});a.insert({before:b});b.insert(a);b.insert('\x3clabel\x3e\x3cselect class\x3d"xRequired" title\x3d"Click to toggle between (Optional) and (Required)"\x3e\x3coption\x3e(Optional)\x3c/option\x3e\x3coption\x3e(Required)\x3c/option\x3e\x3c/select\x3e\x3c/label\x3e');new d.ToggleSelect(a.next().down("select"))}}});d.FormCanvas=Class.create({initialize:function(a){this.container=
$(a);Droppables.add(this.container,{accept:"field",hoverclass:"hovered",onDrop:this._onDrop.bind(this)});document.observe("xwiki:class:deleteField",this._onDeleteField.bind(this));document.observe("xwiki:class:displayField",this._onDisplayField.bindAsEventListener(this));this.fields=this.container.down("ul");this.fields||(this.fields=new Element("ul"),this.container.insert(this.fields));this.fields.id="fields";this.fields.empty()?this.container.addClassName("empty"):this._enhanceFields()},_enhanceFields:function(){this.fields.childElements().each(function(a){(new d.FormField(a)).enhance()})},
_onDrop:function(a){var b=new Element("li",{"data-new":"true"});this.fields.insert(b);this.container.removeClassName("empty");(new d.FormField(b)).enhance(a.down(".data").value)},_onDeleteField:function(){this.fields.empty()?this.container.addClassName("empty"):this._updateOrder()},_onDisplayField:function(a){var b=a.memo.field;b.getContainer().id="field-"+b.getName();var c=$(b.getPropertyId("number"));c.up().hide();c.up().previous().hide();c=new Element("img",{src:"/xwiki/bin/download/AppWithinMinutes/ClassEditSheet/arrow-move.png?rev\x3d1.6",
alt:"Move",title:"Drag and drop to change the order","class":"icon-move"});b.getToolBox().insert({bottom:c});Sortable.create("fields",{handle:"icon-move",format:/^[^_\-](?:[A-Za-z0-9\-_]*)[\-](.*)$/,onUpdate:this._updateOrder.bind(this)});a.memo["new"]&&this._updateOrder()},_updateOrder:function(){for(var a=this.fields.childElements(),b=0;b<a.length;b++){var c=new d.FormField(a[b]);if(c.getConfig())$(c.getPropertyId("number")).value=b+1;else break}}});d.FormFieldPalette=Class.create({initialize:function(a){$(a).select(".field").each(function(b){new Draggable(b,
{revert:!0,reverteffect:function(c){c.setStyle({height:"",left:"",position:"",top:"",zIndex:"",width:""})},ghosting:!0})})}});return d}(XWiki||{});
(function(){function d(b){b.action=XWiki.currentDocument.getURL("edit");b.addClassName("xform");b.down("input[name\x3d'action_preview']").remove();b.down("input[name\x3d'action_save']").name="xaction_save";b.down("input[name\x3d'action_saveandcontinue']").name="xaction_saveandcontinue";document.observe("xwiki:class:save",function(c){c=c.memo.originalEvent;if(c.memo["continue"]){var e=c.memo.originalEvent.element();e.insert({after:new Element("input",{type:"hidden",name:e.name})});(function(){e.next().remove()}).defer()}}.bindAsEventListener(window));
new XWiki.FormFieldNameManager;new XWiki.FormFieldPrettyNameManager;new XWiki.FormFieldHintManager;new XWiki.FormFieldDefaultValueManager;new XWiki.FormFieldRequiredManager;new XWiki.FormFieldPalette("palette");new XWiki.FormCanvas("canvas")}function a(){var b=$("inline");b&&require(["scriptaculous/dragdrop"],function(){d(b)});return b}XWiki.domIsLoaded&&a()||document.observe("xwiki:dom:loaded",a)}).call();
require(["jquery","xwiki-events-bridge"],function(d){d(document).on("xwiki:class:displayField xwiki:class:previewField",function(a,b){a=d(b.field.getContainer());"true"===a.attr("data-new")&&(b=a.find("#template-"+b.field.getName()),a.find(".field-viewer .suggest-propertyValues").first().attr({"data-className":b.val(),"data-propertyName":b.attr("data-propertyName")}))}).on("xwiki:document:saved",function(a){d("ul#fields \x3e li").each(function(){var b=d(this);b.removeAttr("data-new");b=b.find(".field-viewer .suggest-propertyValues").first();
if(0<b.length){var c=b.children();b[0].selectize.destroy();b.empty().append(c);c=XWiki.Model.serialize(XWiki.currentDocument.documentReference.relativeTo(new XWiki.WikiReference(XWiki.currentWiki)));b.attr({"data-className":c,"data-propertyName":b.attr("name").substr((c+"_0_").length)});b.suggestPropertyValues()}})})});