Adept.Core.namespace("Adept.Controller.Form");Adept.Controller.Form.AbstractButton=Class.create(Adept.Controller,{formId:null,ajax:null,CLICK_EVENT:'click',initialize:function($super,componentId,formId){$super(componentId);if(Adept.Core.isset(formId)){this.formId=formId}Adept.Observer.addListener(this.getElementId(),this.CLICK_EVENT,this.submit.bindAsEventListener(this))},submit:function(event){},isAjax:function(){return this.ajax!=null?this.ajax:false},setAjax:function(ajax){this.ajax=ajax},getForm:function(){return $(this.formId)},getFormId:function(){return this.formId},setFormId:function(formId){this.formId=formId}});Adept.Core.namespace('Adept.Controller.Form');Adept.Controller.Form.Button=Class.create(Adept.Controller.Form.AbstractButton,{submit:function(event){var formController=Adept.Application.getController(this.getFormId());formController.attachServerEvent(this.getElementId(),'click');if(this.isAjax()){formController.setAjax(true)}}});Adept.Core.namespace('Adept.Controller.Form');Adept.Controller.Form.CommandLink=Class.create(Adept.Controller.Form.Button,{submit:function($super,event){try{$super(event);Adept.Observer.notifyDomListeners(this.getForm(),'submit')}catch(e){this.createEventInput();this.getForm().submit()}},createEventInput:function(){var input=document.createElement('input');input.type='hidden';input.name='event['+this.getElementId()+']';input.value='click';this.getForm().appendChild(input)}});Adept.Core.namespace('Adept.Controller.Form');Adept.Controller.Form.ActionButton=Class.create(Adept.Controller.Form.AbstractButton,{submit:function(event){var request=Adept.Ajax.Backend.createRequest();request.addEvent(this.getElementId(),this.CLICK_EVENT);request.send()}});Adept.Core.namespace('Adept.Controller.Form');Adept.Controller.Form.ActionLink=Class.create(Adept.Controller.Form.ActionButton,{});Adept.Core.namespace('Adept.Controller.Form');Adept.Controller.Form.MultiFileUpload=Class.create(Adept.Controller,{maxFilesCount:5,immediateUpload:false,filesCount:1,fileId:1,deleteLinkText:'delete',deleteLinkStyle:null,deleteLinkClass:null,initialize:function($super,componentId){$super(componentId);Event.observe(this.getElementId()+":1:add",'click',this.addNewFile.bindAsEventListener(this))},getFirstFileId:function(){return this.getElementId()+":1"},addNewFile:function(event){if(this.filesCount>=this.maxFilesCount){return}var newFile=$(this.getFirstFileId()).cloneNode(false);var container=$(this.getFirstFileId()+":container").cloneNode(false);var addLink=$(this.getFirstFileId()+":add").cloneNode(true);this.filesCount++;this.fileId++;container.id=this.getElementId()+':'+this.fileId+':container';newFile.id=this.getElementId()+':'+this.fileId;newFile.value='';addLink.id=this.getElementId()+':'+this.fileId+':add';Event.observe(addLink,'click',this.addNewFile.bindAsEventListener(this));container.appendChild(newFile);container.appendChild(addLink);container.appendChild(this.createDeleteLink());this.getElement().appendChild(container);event.stop()},createDeleteLink:function(){var deleteLink=document.createElement('span');deleteLink.innerHTML=this.getDeleteLinkText();deleteLink.id=this.getElementId()+':'+this.fileId+':delete';Event.observe(deleteLink,'click',this.deleteFile.bindAsEventListener(this));if(Adept.Core.isset(this.getDeleteLinkClass())){deleteLink.className=this.getDeleteLinkClass()}else{deleteLink.className=$(this.getFirstFileId()+":add").className}if(Adept.Core.isset(this.getDeleteLinkStyle())){deleteLink.setStyle(this.getDeleteLinkStyle())}else{deleteLink.setStyle($(this.getFirstFileId()+":add").style)}return deleteLink},deleteFile:function(event){Element.remove(event.element().parentNode);this.filesCount--;event.stop()},getMaxFilesCount:function(){return this.maxFilesCount},setMaxFilesCount:function(maxFilesCount){this.maxFilesCount=maxFilesCount},getImmediateUpload:function(){return this.immediateUpload},setImmediateUpload:function(immediateUpload){this.immediateUpload=immediateUpload},getFilesCount:function(){return this.filesCount},setFilesCount:function(filesCount){this.filesCount=filesCount},getDeleteLinkText:function(){return this.deleteLinkText},setDeleteLinkText:function(deleteLinkText){this.deleteLinkText=deleteLinkText},getDeleteLinkClass:function(){return this.deleteLinkClass},setDeleteLinkClass:function(deleteLinkClass){this.deleteLinkClass=deleteLinkClass},getDeleteLinkStyle:function(){return this.deleteLinkStyle},setDeleteLinkStyle:function(deleteLinkStyle){this.deleteLinkStyle=deleteLinkStyle}});