(function(){var f=YAHOO.util.Dom;Alfresco.module.EditSite=function(m){this.name="Alfresco.module.EditSite";this.id=m;var l=Alfresco.util.ComponentManager.get(this.id);if(l!==null){throw new Error("An instance of Alfresco.module.EditSite already exists.")}this.editPanelActive=false;Alfresco.util.ComponentManager.register(this);Alfresco.util.YUILoaderHelper.require(["button","container","connection","selector","json","event"],this.onComponentsLoaded,this);return this};Alfresco.module.EditSite.prototype={editPanelActive:false,widgets:{},setMessages:function k(l){Alfresco.util.addMessages(l,this.name);return this},onComponentsLoaded:function h(){if(this.id===null){return}},defaultShowConfig:{},showConfig:{},show:function d(l){if(!this.editPanelActive){this.editPanelActive=true;this.showConfig=YAHOO.lang.merge(this.defaultShowConfig,l);if(this.showConfig.shortName===undefined){this.editPanelActive=false;throw new Error("A shortName must be provided")}if(this.widgets.panel){this.widgets.panel.destroy();this.widgets={}}Alfresco.util.Ajax.request({url:Alfresco.constants.URL_SERVICECONTEXT+"modules/edit-site",dataObj:{htmlid:this.id,shortName:this.showConfig.shortName},successCallback:{fn:this.onTemplateLoaded,scope:this},execScripts:true,failureMessage:"Could not load edit site template"})}},onTemplateLoaded:function e(l){var o=document.createElement("div");o.innerHTML=l.serverResponse.responseText;var m=YAHOO.util.Dom.getFirstChild(o);this.widgets.panel=Alfresco.util.createYUIPanel(m,{close:false});this.widgets.cancelButton=Alfresco.util.createYUIButton(this,"cancel-button",this.onCancelButtonClick);this.widgets.okButton=Alfresco.util.createYUIButton(this,"ok-button",null,{type:"submit"});var n=new Alfresco.forms.Form(this.id+"-form");n.addValidation(this.id+"-title",Alfresco.forms.validation.mandatory,null,"keyup");n.addValidation(this.id+"-title",Alfresco.forms.validation.length,{max:256,crop:true},"keyup");n.addValidation(this.id+"-description",Alfresco.forms.validation.length,{max:512,crop:true},"keyup");n.setShowSubmitStateDynamically(true,false);n.setSubmitElements(this.widgets.okButton);n.doBeforeFormSubmit={fn:function(){var p=YAHOO.util.Dom.get(this.id+"-form");p.attributes.action.nodeValue=Alfresco.constants.PROXY_URI+"api/sites/"+this.showConfig.shortName;this.widgets.okButton.set("disabled",true);this.widgets.cancelButton.set("disabled",true);this.widgets.panel.hide();this.widgets.feedbackMessage=Alfresco.util.PopupManager.displayMessage({text:Alfresco.util.message("message.saving",this.name),spanClass:"wait",displayTime:0})},obj:null,scope:this};n.setAJAXSubmit(true,{successCallback:{fn:this.onEditSiteSuccess,scope:this},failureCallback:{fn:this.onEditSiteFailure,scope:this}});n.setSubmitAsJSON(true);n.setAjaxSubmitMethod("PUT");n.applyTabFix();n.init();this.widgets.isPublicCheckbox=f.get(this.id+"-isPublic-checkbox");YAHOO.util.Event.addListener(this.widgets.isPublicCheckbox,"change",this.onIsPublicChange,this,true);this.widgets.isPublic=f.get(this.id+"-isPublic");this._showPanel()},onIsPublicChange:function g(m,l){this.widgets.isPublic.value=this.widgets.isPublicCheckbox.checked?"true":"false"},onCancelButtonClick:function c(m,l){this.widgets.panel.hide();this.editPanelActive=false},onEditSiteSuccess:function i(l){if(l.json!==undefined&&l.json.shortName){document.location.href=Alfresco.constants.URL_CONTEXT+"page/site/"+l.json.shortName+"/dashboard"}else{this._adjustGUIAfterFailure(l)}},onEditSiteFailure:function a(l){this._adjustGUIAfterFailure(l)},_adjustGUIAfterFailure:function b(l){this.widgets.feedbackMessage.destroy();this.widgets.okButton.set("disabled",false);this.widgets.cancelButton.set("disabled",false);this.widgets.panel.show();var n=Alfresco.util.message("message.failure",this.name);if(l.json.message){var m=Alfresco.util.message(l.json.message,this.name);n=m?m:n}Alfresco.util.PopupManager.displayPrompt({text:n})},_showPanel:function j(){this.widgets.panel.show();Alfresco.util.caretFix(this.id+"-form");var l=new YAHOO.util.KeyListener(document,{keys:YAHOO.util.KeyListener.KEY.ESCAPE},{fn:function(n,m){this.onCancelButtonClick()},scope:this,correctScope:true});l.enable();YAHOO.util.Dom.get(this.id+"-title").focus()}}})();Alfresco.module.getEditSiteInstance=function(){var a="alfresco-editSite-instance";return Alfresco.util.ComponentManager.get(a)||new Alfresco.module.EditSite(a)};
