//~ need messages.js
//~ need formhandler.js

function feedback() {
	if (is_message_shown()) {
		close_message();
		return false;
	}
	
	show_message();
	$('.message').addClass('feedback-message');
	$('.message-title').html('Форма обратной связи');
	$('.message-body' ).html([
		'<div class="forms forms-feedback">',
		'	<form id="feedback-form" class="form-handler-id-feedback" action="/" method="post">',
		'		<div class="field">',
		'			<label for="feedback-name" class="field-title">Имя</label>',
		'			<div class="field-inner">',
		'				<input type="text" name="name" id="feedback-name" />',
		'				<div class="field-error" id="name-error" style="display: none;"></div>',
		'			</div>',
		'		</div>',
		'		<div class="field">',
		'			<label for="feedback-email" class="field-title">E-mail</label>',
		'			<div class="field-inner">',
		'				<input type="text" name="email" id="feedback-email" />',
		'				<div class="field-error" id="email-error" style="display: none;"></div>',
		'			</div>',
		'		</div>',
		'		<div class="field">',
		'			<label for="feedback-message" class="field-title">Вопрос</label>',
		'			<div class="field-inner">',
		'				<textarea name="message" id="feedback-message" cols="70" rows="10"></textarea>',
		'				<div class="field-error" id="message-error" style="display: none;"></div>',
		'			</div>',
		'		</div>',
		'		<div class="field">',
		'			<div class="field-inner">',
		'				<div class="field-button"><input type="submit" value="Задать вопрос" id="feedback-submit" />Отправить</div>',
		'				<a href="#" id="feedback-cancel">Отмена</span>',
		'			</div>',
		'		</div>',
		'	</form>',
		'</div>',
		''
		].join('')
	);
	$('#feedback-cancel').click(function() {
		close_message();
		return false;
	});
	$('#feedback-name').click(function() {
		$('#name-error').hide();
	});
	$('#feedback-email').click(function() {
		$('#email-error').hide();
	});
	$('#feedback-message').click(function() {
		$('#message-error').hide();
	});
	$('#feedback-submit').click(function() {
		$('#name-error').hide();
		$('#email-error').hide();
		$('#message-error').hide();

		$(this).parents('form').submit();

		return false;
	});
	FormHandler.initForm(
		$('#feedback-form'),
		{
			success: function () {
				$('.message-body').html([
					'<div class="forms forms-feedback">',
					'	<div class="field">',
					'		<div class="field-inner">',
					'			<p>Сообщение отправлено.</p>',
					'		</div>',
					'	</div>',
					'	<div class="field">',
					'		<div class="field-inner">',
					'			<div class="field-button"><input type="button" value="Закрыть" id="feedback-close" />Закрыть</div>',
					'		</div>',
					'	</div>',
					'</div>',
					''
				].join(''));
				$('#feedback-close').click(function() {
					close_message();
					return false;
				});
			},
			error: function (message) {
				var form = $(this);

				$('#name-error').hide();
				$('#email-error').hide();
				$('#message-error').hide();

				for (var field in message.error.data) {
					$('#' + field + '-error').html(message.error.data[field].join('<br />')).show();
				}
			}
		}
	);

	return false;
}

$(function() {
	$('head').append('<link href="/_s/css/feedback.css" rel="stylesheet">');
	$('body').prepend('<div class="feedback"></div>');
	$('.feedback').click(feedback);
});

