(function(){var g=YAHOO.util.Dom,j=YAHOO.util.Event,a=YAHOO.util.KeyListener;Alfresco.module.CreateSite=function(l){var k=Alfresco.util.ComponentManager.get(this.id);if(k!==null){throw new Error("An instance of Alfresco.module.CreateSite already exists.")}Alfresco.module.CreateSite.superclass.constructor.call(this,"Alfresco.module.CreateSite",l,["button","container","connection","selector","json"]);return this};YAHOO.extend(Alfresco.module.CreateSite,Alfresco.component.Base,{show:function e(){if(this.widgets.panel){this._showPanel()}else{Alfresco.util.Ajax.request({url:Alfresco.constants.URL_SERVICECONTEXT+"modules/create-site",dataObj:{htmlid:this.id},successCallback:{fn:this.onTemplateLoaded,scope:this},execScripts:true,failureMessage:"Could not load create site template"})}},onTemplateLoaded:function f(l){var n=document.createElement("div");n.innerHTML=l.serverResponse.responseText;var m=g.getFirstChild(n);this.widgets.panel=Alfresco.util.createYUIPanel(m);this.widgets.cancelButton=Alfresco.util.createYUIButton(this,"cancel-button",this.onCancelButtonClick);this.widgets.okButton=Alfresco.util.createYUIButton(this,"ok-button",null,{type:"submit"});this.widgets.siteVisibility=g.get(this.id+"-visibility");this.widgets.isPublic=g.get(this.id+"-isPublic");this.widgets.isModerated=g.get(this.id+"-isModerated");this.widgets.isPrivate=g.get(this.id+"-isPrivate");var k=new Alfresco.forms.Form(this.id+"-form");k.addValidation(this.id+"-title",Alfresco.forms.validation.mandatory,null,"keyup");k.addValidation(this.id+"-title",Alfresco.forms.validation.length,{max:256,crop:true},"keyup");k.addValidation(this.id+"-shortName",Alfresco.forms.validation.mandatory,null,"blur");k.addValidation(this.id+"-shortName",Alfresco.forms.validation.regexMatch,{pattern:/^[ ]*[0-9a-zA-Zs]+[ ]*$/},"keyup");k.addValidation(this.id+"-shortName",Alfresco.forms.validation.nodeName,null,"keyup");k.addValidation(this.id+"-shortName",Alfresco.forms.validation.length,{max:72,crop:true},"keyup");k.addValidation(this.id+"-description",Alfresco.forms.validation.length,{max:512,crop:true},"keyup");k.setShowSubmitStateDynamically(true,false);k.setSubmitElements(this.widgets.okButton);k.doBeforeFormSubmit={fn:function(){var p=g.get(this.id+"-form");p.attributes.action.nodeValue=Alfresco.constants.URL_SERVICECONTEXT+"modules/create-site";this.widgets.okButton.set("disabled",true);this.widgets.cancelButton.set("disabled",true);var o="PUBLIC";if(this.widgets.isPublic.checked){if(this.widgets.isModerated.checked){o="MODERATED"}}else{o="PRIVATE"}this.widgets.siteVisibility.value=o;this.widgets.panel.hide();this.widgets.feedbackMessage=Alfresco.util.PopupManager.displayMessage({text:Alfresco.util.message("message.creating",this.name),spanClass:"wait",displayTime:0})},obj:null,scope:this};k.setAJAXSubmit(true,{successCallback:{fn:this.onCreateSiteSuccess,scope:this},failureCallback:{fn:this.onCreateSiteFailure,scope:this}});k.setSubmitAsJSON(true);k.applyTabFix();k.init();this._showPanel()},onCancelButtonClick:function c(l,k){this.widgets.panel.hide()},onCreateSiteSuccess:function d(k){if(k.json!==undefined&&k.json.success){document.location.href=Alfresco.constants.URL_CONTEXT+"page/site/"+k.config.dataObj.shortName+"/dashboard"}else{this._adjustGUIAfterFailure(k)}},onCreateSiteFailure:function h(k){this._adjustGUIAfterFailure(k)},_adjustGUIAfterFailure:function b(k){this.widgets.feedbackMessage.destroy();this.widgets.okButton.set("disabled",false);this.widgets.cancelButton.set("disabled",false);this.widgets.panel.show();var m=Alfresco.util.message("message.failure",this.name);if(k.json.message){var l=Alfresco.util.message(k.json.message,this.name);m=l?l:m}Alfresco.util.PopupManager.displayPrompt({text:m})},_showPanel:function i(){this.widgets.panel.show();Alfresco.util.caretFix(this.id+"-form");var k=new a(document,{keys:a.KEY.ESCAPE},{fn:function(m,l){this.onCancelButtonClick()},scope:this,correctScope:true});k.enable();g.get(this.id+"-title").focus()}})})();Alfresco.module.getCreateSiteInstance=function(){var a="alfresco-createSite-instance";return Alfresco.util.ComponentManager.get(a)||new Alfresco.module.CreateSite(a)};
