$(document).ready(function() {
	//$('#login').keyup(login_check);
    $('#login').keyup(function() {clean_alert($('#login'))});
    $('#login').blur(login_check);
	//$('#password1').keyup(password_check);
	//$('#password2').keyup(password_check);
	$('#password1').keyup(function() {clean_alert($('#password1'))});
	$('#password2').keyup(function() {clean_alert($('#password2'))});    
	$('#password1').blur(password_check);
	$('#password2').blur(password_check);
	//$('#email').keyup(email_check);
    $('#email').keyup(function() {clean_alert($('#email'))});
	$('#email').blur(email_check);    

	//login_check();
	//password_check();
	//email_check();
});

function login_check()
{
	//timer_ids['login_check_timer_id'] = 0;

	var login = $('#login').val();
	if(window.login_last_checked == login)
    {
	    clean_alert($('#login'));
	    return;
	}

	window.login_last_checked = login;
	window.login_last_checked_ok = false;

	if(login.length == 0)
	{
		clean_alert($('#login'));
		return;
	}

	//Check length and chars
	if(login.search(/^[a-z]+[a-z0-9_-]*$/i) == -1)
	{
		if(login.search(/^[^a-z]/) != -1)
            show_alert($('#login'), 'error', 'Имя пользователя должно начинаться с буквы');
		else
            show_alert($('#login'), 'error', 'Имя пользователя содержит недопустимые символы');

		return;
	}

	if(login.length < 3 || login.length > 14)
	{
		show_alert($('#login'), 'error', 'Имя пользователя должно быть длиной от 3 до 14 символов');
		return;
	}

	//Ajax-check

	$.post('/ajax/reguser/check_username/', { u: login }, function(reply)
	{
		if(reply.length == 0)//Something bad happened
		{
            show_alert($('#login'), 'error', 'Не удалось проверить логин. Свяжитесь с администратором.');
			return;
		}

		var code = reply.charAt(0);

		if(code == '0')
		{
			window.login_last_checked_ok = true;
			clean_alert($('#login'));
		}
		else if(code == '1')
            show_alert($('#login'), 'error', 'Имя пользователя <b>' + login + '</b> занято');
		else//`code` == '2' or something else - some script error
			show_alert($('#login'), 'error', 'Не удалось проверить логин. Свяжитесь с администратором.');
	});
}

function password_check()
{
	var password1 = $('#password1').val();

	if(password1.length == 0)
		clean_alert($('#password1'));
	else if(password1.length < 4)
        show_alert($('#password1'), 'error', 'Длина пароля должна быть не менее 4 символов');
	else
		clean_alert($('#password1'));

	var password2 = $('#password2').val();

	if(password2.length == 0)
		clean_alert($('#password2'));
	else if(password2 != password1)
        show_alert($('#password2'), 'error', 'Ошибка в подтверждении');
	else
		clean_alert($('#password2'));

	return;
}

function email_check()
{

	var email = $('#email').val();

	if(email.length == 0) {
		clean_alert($('#email'));
	} else {
	//goddamn f*ckin' long regexp from php validator class
	  if(email.search(/^([a-zA-Z0-9_\-])+(\.([a-zA-Z0-9_\-\+])+)*@(((\[)?(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5])))\.(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5])))\.(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5])))\.(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5]))(\])?))|((([a-zA-Z0-9\-])+\.)+([a-zA-Z\-])+))$/) == -1) {
		show_alert($('#email'), 'error', 'Неверный формат email');
	  } else {
		//Ajax-check

		$.post('/ajax/reguser/check_email/', { e: email }, function(reply)
		{
			if(reply.length == 0)//Something bad happened
			{
                show_alert($('#email'), 'error', 'Не удалось проверить email. Свяжитесь с администратором.');
				return;
			}

			var code = reply.charAt(0);

			if(code == '0')
			{
				email_last_checked_ok = true;
				clean_alert($('#email'));
			}
			else if(code == '1')
                show_alert($('#email'), 'error', 'Пользователь с email <b>' + email + '</b> уже зарегистрирован');
			else//`code` == '2' or something else - some script error
                show_alert($('#email'), 'error', 'Не удалось проверить логин. Свяжитесь с администратором.');
		});
	  }
	}
}
