//$Rev: 17656 $
//$Date: 2009-07-23 11:12:35 -0400 (Thu, 23 Jul 2009) $
var TextModule;

if ($type(window['Module']) == 'class'){
	TextModule = new Class({
		Extends: Module,
		options:{
		},
		initialize : function(module,options){
			this.parent(module,options);
			this.form = this.getPanel('edit').getElement('form');
			this.form.set('send',{
				onComplete:function(response){
					TextElement.unlockText(this.textarea);
					if (response.contains('&success') && handleError(response))
						return this.setFeedback.delay(100,this,['save:error',this.form.getElement('.feedback')]);
					var preview=this.getPanel('preview');
					preview.set('html', response);
					this.reloadPublishPanel();
					this.setFeedback('save:done',this.form.getElement('.feedback'));
					this.saving = false;
				}.bind(this)
			});
			this.form.addEvent('submit',this.submit.bindWithEvent(this));
			this.textarea = this.form.getElement('.mceEditor');
		},

		loadEdit: function(panel){
			layout.idle = false;
			layout.dropAreas.removeClass('draggable');
			var panel = this.getPanel(panel);
			this.form.moduleinstid.value = this.id;
			TextElement.load(this.textarea,{moduleinstid:this.id});
		},

		submit : function(event){
			event.stop();
			if (this.saving) return;
			this.saving = true;
			this.setFeedback('save:start',this.form.getElement('.feedback'));
			TextElement.saveText(this.textarea);
			this.form.send.delay(10, this.form);
		},
		
		shouldUnloadEdit : function() {
			return TextElement.askToSaveIfDirty(this.textarea);
		},

		unloadEdit:function(panel){
			TextElement.unload(this.textarea);
			layout.idle = true;
			layout.dropAreas.addClass('draggable');
		}
	});
	$extend(TextModule,{ //static methods

	});
}