
var Editor=new Class({Implements:[Options,Events],options:{linkEvent:'click'},initialize:function(link,options){this.setOptions(options);this.link=$(link);this.bounds={load:this.load.bind(this),loaded:this.loaded.bind(this),submit:this.submit.bind(this),catchResponse:this.catchResponse.bind(this)};this.link.addEvent(this.options.linkEvent,this.bounds.load);},load:function(evt){if(evt)evt.stop();Editor.loader.addEvent('contentLoaded',this.bounds.loaded).setPosition('center').setAjaxContent(this.options.link||this.link.get('href'));},loaded:function(){this.content=$(Editor.loader).getElement('div.loader-content');var form=this.content.getElement('form');if(form&&!form.hasClass('no-ajax'))
form.addEvent('submit',this.bounds.submit);this.fireEvent('loaded',this.content);},submit:function(evt){evt.stop();this.content.getElements('div.errors,div.success').set('text','');var form=this.content.getElement('form');new Request.JSON({url:form.get('action'),data:form,onSuccess:this.bounds.catchResponse}).send();},catchResponse:function(result){this.content.getElements('div.errors,div.success').set('text','');if(result.success&&result.message)
this.content.getElement('div.success').set('text',result.message).fade('hide').fade('in');if(result.errors){result.errors.each(function(error){this.content.getElement('div.errors').adopt(new Element('div',{'class':'error-message',text:error}).fade('hide').fade('in'));},this);}
return this;}});Editor.loader=null;