/**
 * @author Vlad Yakovlev (red.scorpix@gmail.com)
 * @link www.scorpix.ru
 * @requires jQuery
 * @requires jCommon
 * @version 0.1
 * @date 2010-03-10
 */

$(function() {

	var
		formEl = $('#content .subscribe form'),
		emailInputEl = formEl.find('input.fld_email'),
		nameInputEl = formEl.find('input.fld_name'),
		messageEl = formEl.find('.message'),

		emailEmptyMessage = 'Необходимо ввести электронный ящик.',
		emailErrorMessage = 'Неправильный формат электронного ящика.',
		nameEmptyMessage = 'Необходимо ввести имя.';

	formEl.submit(function() {
		emailInputEl.val($.trim(emailInputEl.val()));
		nameInputEl.val($.trim(nameInputEl.val()));

		var
			emailVal = emailInputEl.val(),
			nameVal = nameInputEl.val(),
			error = '';

		if ('' == emailVal || 'электронный ящик' == emailVal) {
			error = emailEmptyMessage;
		} else if (!checkEmail(emailVal)) {
			error = emailErrorMessage;
		}

		if ('' == nameVal || 'имя' == nameVal) {
			error = nameEmptyMessage;
		}

		if (error) {
			messageEl
				.addClass('error')
				.text(error);

			return false;
		}

		messageEl
			.removeClass('error')
			.text('');

		$.ajax({
			url: formEl.attr('action'),
			type: 'POST',
			cache: false,
			data: {
				email: emailVal,
				name: nameVal
			},
			dataType: 'json',
			success: function(data) {
				if (0 == data.error) {
					messageEl.removeClass('error');
				} else {
					messageEl.addClass('error');
				}

				messageEl.html(data.message);
			}
		});

		return false;
	});

	function checkEmail(value) {
		reg = /[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/;

		return value.match(reg) ? true : false;
	}
});
