/* форма связи */
var FeedBack = Class.create();
FeedBack.prototype = {

	el_box: null,
	el_form: null,
	el_error: null,
	el_done: null,

	msgs: null,
	msgs_ru: {'empty': 'не заполнено', 'invalid': 'заполнено неверно'},
	msgs_en: {'empty': 'undefined', 'invalid': 'invalid value'},


	initialize: function(){
		this.el_box = $('feedback');
		this.el_form = $('feedback_form');
		this.el_error = $('feedback_error');
		this.el_done = $('feedback_done');

		this.el_form.onsubmit = Delegate.create(this, this.submit);

		this.msgs = this['msgs_' + lang] || this.msgs_ru;
	},





	loading: false,

	submit: function(){
		if( this.loading ) return false;

		var errors = new Array();

		try{

			// заполненны ли поля
			var arr = ['name', 'phone', 'text'];
			for( var i = 0; i < arr.length; i++){

				var el = $(this.el_form[arr[i]]);

				if( el.value.blank() ){
					el.addClassName('dany')
					errors.push('"'+  el.title +'" - ' + this.msgs['empty']);
				}else
					el.removeClassName('dany');
			}



			var el_mail = $(this.el_form['mail']);
			var pat = new RegExp(/^[a-z_0-9-][a-z_0-9-\.]*@[a-z_0-9-]+(\.[a-z_0-9-]+)*\.[a-z]{2,5}$/i);

			// если уж вписываем почту, то валидную
			if( !el_mail.value.blank() && !pat.test(el_mail.value) ){
				errors.push('"'+ el_mail.title +'" - ' + this.msgs['invalid']);
				el_mail.addClassName('dany');
			}else
				el_mail.removeClassName('dany');



			/******************************************************************/

			if( errors.length > 0){
				var str = errors.join(',<br />');
				this.el_error.update(str).show().scrollTo();
				return false;
			}


			this.loading = true;
			this.el_error.update().hide();
			cursor.attach('/media/img/loader.gif');

			// отправляем форму
			this.el_form.request({
				parameters: {who_is_your_daddy: '?' },
				onComplete: this.on_complete.bind(this)
			});

		}catch(e){ dump(e)}

		return false;
	},





	on_complete: function (response){
		this.loading = false;
		cursor.reset();
		var text = response.responseText;

		if( text == '1'){
			this.el_form.hide();
			this.el_done.show();
			return;
		}
		this.el_error.update(text).show();
	},




	one_more_time: function(){
		this.el_done.hide();
		this.el_form.show();
		this.el_form['text'].value = '';
	}



}// end class
