var AjaxForm = new Class({
	Implements: Options,
	options: {
		eform: ($$("form"))[0],
		subform: $empty,
		anigif: "/img/ajax-loader.gif",
		transition: Fx.Transitions.Quart.easeInOut,
		duration: 1200,
		successheight: 80
	},
	initialize: function(options){
		this.setOptions(options);
		
		this.eform = $(this.options.eform);
		this.url = this.eform.get('action');
		this.subform = $(this.options.subform);
		this.subformheight = this.subform.getCoordinates().height+'px';
		this.successheight = this.options.successheight;
		this.eform.setStyle('height',this.subformheight); // fijar el alto
		this.formfx = new Fx.Morph(this.eform,{ duration: this.options.duration, transition: this.options.transition, link:'chain'});

		this.eform.addEvent("submit", function(e){
			e = new Event(e);e.stop(); // No te submitas!
			this.formfx.start({'opacity':0}).chain(function(){ //desaparece
			
				new Element('div',{
					'class':'ajax_loader',
					'styles':{ 'width':234,'text-align':'center','height':this.subformheight,'line-height':this.subformheight },
					'html':'&nbsp;<img src="'+this.options.anigif+'" alt="Cargando..." />&nbsp;'
				}).inject(this.subform,'after');// loader
				
				this.subform.setStyle('display','none');//desaparece el contenedor del form
				
				this.formfx.start({'opacity':1}).chain(function(){// mostrar (loader)
					new Request({
						url:this.url+'?isAjax=1&subformid='+this.options.subform+'&successheight='+this.successheight,
						encoding:'iso-8859-1',
						evalScripts:true,
						injectMode:false
					}).send(this.eform);
				}.bind(this));
			}.bind(this));
		}.bindWithEvent(this));
	}
});
