/* Функции регистрации */

// Проверка логина
function checkLogin(login)
{
	setSTDByState('logerr');
	new Ajax.Request(
		'/lib/checkreg.php', 
		{   
			method: 'post',   
			onSuccess: function(transport)
			{
				if(transport.responseText == 0)
				{
					setCommonState('logerr');
					return false;
				}
				if(transport.responseText == 1)
				{
					setErrorState('logerr', 'некорректный логин', 'недопустимые символы или длина');
					return false;
				}
				if(transport.responseText == 2)
				{
					setErrorState('logerr', 'такой логин уже занят', 'попробуйте выбрать другое имя');
					return false;
				}
				if(transport.responseText == 3)
				{
					setOKState('logerr');
					return false;
				}
				return true;
			},
			parameters: 'action=checklogin&login=' + encodeURI(login)
		}
	); 	
	return false;
}

// Проверка человечности
function checkBot(answer)
{
	setSTDByState('boterr');
	new Ajax.Request(
		'/lib/checkreg.php', 
		{   
			method: 'post',   
			onSuccess: function(transport)
			{
				if(transport.responseText == 0)
				{
					setCommonState('logerr');
					return false;
				}
				if(transport.responseText == 1)
				{
					setErrorState('boterr', 'ответ неверный', 'вы и правда так думаете? :-)');
					return false;
				}
				if(transport.responseText == 3)
				{
					setOKState('boterr');
					return false;
				}
				return true;
			},
			parameters: 'action=checkbot&answer=' + answer + '&qid=' + $('qid').value
		}
	); 	
	return false;
}

// Проверка пароля
function checkPass(pass)
{
	setSTDByState('passerr');
	if(pass == '')
	{
		setCommonState('passerr');
		return false;
	}
	if(pass.length < 6 || pass.length > 16)
	{
		setErrorState('passerr', 'некорректный пароль', 'некорректная длина пароля');
		return false;
	}
	setOKState('passerr');
}

// Проверка повторного ввода пароля
function checkPass2(pass)
{
	if(pass == '')
	{
		setCommonState('passerr');
		return false;
	}
	if(pass != $('passwd').value)
	{
		setErrorState('pass2err', 'пароли не совпадают', 'попробуйте ввести заново');
		return false;
	}
	setOKState('pass2err');
}

// Проверка пароля
function checkEmail(email)
{
	setSTDByState('emailerr');
	if(email == '')
	{
		setCommonState('emailerr');
		return false;
	}
	if(email.length < 6 || email.length > 32)
	{
		setErrorState('emailerr', 'некорректный e-mail', 'слишком длинный или короткий');
		return false;
	}
	setOKState('emailerr');
}

// Проверка ICQ
function checkICQ(icq)
{
	setSTDByState('icqerr');
	if(icq == '')
	{
		setCommonState('icqerr');
		return false;
	}
	if(isNaN(parseInt(icq)))
	{
		setErrorState('icqerr', 'некорректный номер ICQ', 'недопустимые символы');
		return false;
	}
	icq = parseInt(icq);
	$('icq').value = icq;
	icq = $('icq').value;
	if(icq.length < 6 || icq.length > 16)
	{
		setErrorState('icqerr', 'некорректный номер ICQ', 'слишком длинный или короткий');
		return false;
	}
	setOKState('icqerr');
}

// Проверка правил (приняты или нет)
function checkRules(flag)
{
	if(!flag)
	{
		setErrorState('ruleserr', 'без правил никуда', 'регистрация невозможна');
		return false;
	}
	setOKState('ruleserr');
}

// Функция регистрации
function register()
{
	$('rgform').submit();
	return false;	var error = 0;
	error = ($('logerr').className != 'ok') ? 1 : error;
	error = ($('passerr').className != 'ok') ? 1 : error;
	error = ($('pass2err').className != 'ok') ? 1 : error;
	error = ($('emailerr').className != 'ok') ? 1 : error;
	error = ($('icqerr').className == 'ok' || $('icqerr').className == 'nothing') ? error : 1;
	error = ($('boterr').className != 'ok') ? 1 : error;
	error = ($('ruleserr').className != 'ok') ? 1 : error;
	if(error == 1)
	{
		alert('Некоторые поля заполнены с ошибками. Регистрация невозможна.')
	}
	else
	{
		$('rgform').submit();
	}

	return false;
}



// Установка статуса ожидания ответа от сервера
function setSTDByState(layer)
{
	$(layer).className = 'nothing';
	$(layer).innerHTML = 'проверяю корректность...';
	return false;
}

// Установка стандартного статуса ожидания ввода данных
function setCommonState(layer)
{
	$(layer).className = 'nothing';
	$(layer).innerHTML = 'ничего не введено';
	return false;
}

// Установка статуса успешного ввода
function setOKState(layer)
{
	$(layer).className = 'ok';
	$(layer).innerHTML = 'заполнено верно<div class="fcaption">всё хорошо</div>';
	return false;
}

// Установка статуса ошибки
function setErrorState(layer, error, notice)
{
	$(layer).className = 'error';
	$(layer).innerHTML = error + '<div class="fcaption">' + notice + '</div>';
	return false;
}