
var AjaxFormSender = new Class({
	Implements: [Options],

	options: {
		formElement: null
	},

	initialize: function() {
		$(document.body).getElements('input[rel=c2fapplybutton]').each( function(sendbutton) {
			/* get form element */
			this.options.formElement = $(sendbutton).getParent("form");
			this.options.formElement.addEvent('keydown', function(event) {
				if (event.control && event.key == 's') {
					event.stop();
					this.submitForm();
				}
			}.bind(this));

			$(sendbutton).addEvent('click', function(event) {
				event.stop();
				this.submitForm();
			}.bind(this));
		}.bind(this));
	},

	submitForm: function() {
		/* set some properties */
		this.options.formElement.set('send', {
			headers : {
				'X-Fadal-Request' : 'AjaxSend'
			},
			onComplete : function(response) {
				var container = $('messagingcontainer');
				var resp = this.options.formElement.get('send');
				if (resp.getHeader("X-Fadal-Response") == "AjaxSend") {
					container.innerHTML = response;
					if (formChangeWatcher != null) formChangeWatcher.options.watchChangeOn = false;
					this.emptyMessagingContainer.delay(3000, container);
				} else {
					container.innerHTML = getMessaging("error", "Fehler", "Es ist ein unbekannter Fehler aufgetreten");
					this.emptyMessagingContainer.delay(3000, container);
				}
			}.bind(this)
		});
		var container = $('messagingcontainer');
		var slideContainer = new Fx.Slide('messagingcontainer');
		slideContainer.hide();
		
		container.innerHTML = this.getMessaging("info", "Information", "Formular wird gesendet");
		
		slideContainer.slideIn().chain(function(){
			/* Send the form. */
			this.options.formElement.send();
		}.bind(this));
	},

	getMessaging: function(className, title, message) {
		var html;
		html  = '<div style="position: relative; " class="messaging messaging_' + className + '">';
		html += '  <div class="msg-top">';
		html += '    <b class="btop"><b></b></b>';
		html += '  </div>';
		html += '  <div class="msg">';
		html += '    <div class="msg-title">' + title + '</div>';
		html += '    <div class="msg-text">';
		html += '      <div class="messaging_msg">' + message + '</div>';
		html += '    </div>';
		html += '  </div>';
		html += '  <div class="msg-bottom"><b class="bbot"><b></b></b></div>';
		html += '</div>';
		html += '<br/>';
		//
		return html;
	},

	emptyMessagingContainer: function() {
		var slideContainer = new Fx.Slide('messagingcontainer');
		slideContainer.slideOut().chain(function(){
			this.empty();
		}.bind(this));
	}

});

var ajaxFormSender;
window.addEvent('domready', function() {
	ajaxFormSender = new AjaxFormSender();
});

