function DoPassValidation()
{
	var password1 = document.getElementById('password1');
	var password2 = document.getElementById('password2');

	if(password1.value != password2.value)
	{
		alert('Пароли не совпадают!');
		return false;
	}
	else
	{
		return true;
	}
}

bNickIsValid = true;
function DoNickPassValidation()
{
	new_user_name = document.getElementById('name');

	changeNick();
	if (!bNickIsValid && new_user_name.value.length > 0)
	{
		alert('Такой логин уже занят!');
		return false;
	}

	b_day   = document.getElementById("b_day").value;
	b_month = document.getElementById("b_month").value;
	b_year  = document.getElementById("b_year").value;

	if (b_day < 1 || b_month < 1 || b_year < 1)
	{
		alert('Укажите правильную дату своего рождения!');
		return false;
	}

	return bNickIsValid && DoPassValidation() ? true : false;
}

function initValidator()
{
	frmValidator  = new Validator("registerForm");
	frmValidator.addValidation("email", "req", "Пожалуйста, укажите Ваш адрес электронной почты");
	frmValidator.addValidation("email", "email", "Пожалуйста, укажите Ваш адрес электронной почты");
	frmValidator.addValidation("email", "maxlen=50");

	frmValidator.addValidation("name", "req", "Пожалуйста, укажите Ваш ник");
	frmValidator.addValidation("name", "minlen=" + nickMinLength, "Ник должен состоять минимум из " + nickMinLength + "-х символов.");
	frmValidator.addValidation("name", "maxlen=" + nickMaxLength, "Ник должен состоять максимум из " + nickMaxLength + "-х символов.");
	frmValidator.addValidation("name", "regexp=" + nickRegExp, "Исключительно символы " + nickRegExp +", пожалуйста");

	frmValidator.addValidation("password1", "req", "Пожалуйста, укажите Ваш пароль");
	frmValidator.addValidation("password1", "minlen=6",	"Пароль должен состоять минимум из 6-ти символов.");

	frmValidator.addValidation("b_day", "req", "Пожалуйста, укажите день Вашего рождения");
	frmValidator.addValidation("b_day", "gt=0","Пожалуйста, укажите день Вашего рождения");

	frmValidator.addValidation("b_month", "req", "Пожалуйста, укажите месяц Вашего рождения");
	frmValidator.addValidation("b_month", "gt=0", "Пожалуйста, укажите месяц Вашего рождения");

	frmValidator.addValidation("b_year", "req", "Пожалуйста, укажите год Вашего рождения");
	frmValidator.addValidation("b_year", "gt=0", "Пожалуйста, укажите год Вашего рождения");

	frmValidator.addValidation("capcha_code", "req", "Пожалуйста, укажите код подтверждения");
	frmValidator.addValidation("capcha_code", "minlen=4", "Код подтверждения состоит из 4-х символов.");

	frmValidator.setAddnlValidationFunction("DoNickPassValidation");
}

function sendRegisterForm()
{
	// Create new JsHttpRequest object.
	if (!frmValidator.formobj.onsubmit())
	{
		return false;
	}

	JsHttpRequest.query(
		'/ajax/register.php', // backend
		{
			'name': document.getElementById("name").value,
			'email': document.getElementById("email").value,
			'b_day': document.getElementById("b_day").value,
			'b_month': document.getElementById("b_month").value,
			'sex': document.getElementById("sex").value,
			'b_year': document.getElementById("b_year").value,
			'capcha_code': document.getElementById("capcha_code").value,
			'password1': document.getElementById("password1").value,
			'password2': document.getElementById("password2").value
		},
		function(result, errors)
		{
			if (result)
			{
				if (result['res_val'] != '[ok]')
				{
					if (result['name'] != '[ok]') alert(result['name_error']);
					else
					if (result['email'] != '[ok]') alert(result['email_error']);
					else
					if (result['password'] != '[ok]') alert(result['password_error']);
					else
					if (result['capcha_code'] != '[ok]') alert(result['capcha_code_error']);
					else
					if (result['res_val'] != '[ok]') alert(result['res_val_error']);

					document.getElementById("capcha").src += Math.floor(Math.random()*10);;
				}
				else
				{
					alert(
						'Ваш логин успешно зарегистрирован, на указанный почтовый адрес выслано письмо с инструкциями. ' +
						'В нем есть ссылка, на которую следует кликнуть для активации учетной записи. \n' +
						'Имейте ввиду, что иногда спам-фильтры почтовых сервисов воспринимают письма с информацией об активации как ' +
						'нежелательную корреспонденцию (спам). Если письма долго нет - проверьте спам-фильтр.'
					);
				}

			}
		},
		true  // disable caching
	);

	return true;
}

function doCheckNick(sValue)
{
	var req = new JsHttpRequest();
	req.onreadystatechange = function()
	{
		if (req.readyState == 4 && req.responseJS.res_val != null && req.responseJS.res_val != 'undefined')
		{
			if (req.responseJS.res_val == "ok")
			{
				div_obj      = null;
				div_obj      = document.getElementById('nick_check');

				if (div_obj != null)
				{
					if (req.responseJS.res_expl == '1')
					{
						div_obj.innerHTML = '<img src="/images/status_ok.gif">'
						bNickIsValid = true;
					}
					else
					{
						div_obj.innerHTML = '<img src="/images/status_bad.gif">'
						bNickIsValid = false;
					}
					div_obj.style.visibility = 'visible';
				}
			}
		}
	}

	req.open(null, "/ajax/user.php?mode=check?name=" + sValue +"&tm="+(new Date()).getTime(), true);
	req.send(null);
}

function changeNick()
{
	new_user_name = document.getElementById('name');

	if (new_user_name.value) {
        if (new_user_name.value.length >= 2) {
			doCheckNick(new_user_name.value);
			return;
		}
	}
	div_obj      = document.getElementById('nick_check');
	if(div_obj) div_obj.style.visibility = 'hidden';
}