// Флаг того, был ли введен повтор пароля
var repeated_password = 0;

// Функция, разрешающая второй шаг регистрации
function allow_step2(type) {
	if (document.getElementById('account_type')) {
		document.getElementById('account_type').value = type;
	}
	
	if (document.getElementById('step2')) {
		document.getElementById('step2').style.visibility = 'visible';
	}
}

// Функция проверки и установки типа аккаунта
function set_account_type(type) {
	switch (type) {

		case usertype_user:

		if (document.getElementById('account_type_value')) {

			document.getElementById('account_type_value').innerHTML = info[0];
		}

		if (document.getElementById('name_type')) {
			document.getElementById('name_type').innerHTML = info[2] + ':';
		}

		allow_step2(type);
		break;

		case usertype_repetitor:

		if (document.getElementById('account_type_value')) {

			document.getElementById('account_type_value').innerHTML = info[1];
		}

		if (document.getElementById('name_type')) {
			document.getElementById('name_type').innerHTML = info[3] + ':';
		}

		allow_step2(type);
		break;
	}

}
// Функция проверки пароля
function check_password() {
	if (document.getElementById('password')) {

		var len = document.getElementById('password').value.length;
		var check_password_message	= "";
		var check_password_picture	= "";
		var result					= false;

		if (len < 1) {
			check_password_message	= error[4];
			check_password_picture	= "<img src='/images/common/failure.gif' alt=''>";

		} else if ((len >= 1) && (len < min_password_length)) {

			check_password_message	= error[5];
			check_password_picture	= "<img src='/images/common/failure.gif' alt=''>";

		} else {

			check_password_message	= success[1];
			check_password_picture	= "<img src='/images/common/success.gif' alt=''>";
			result					= true;

		}

		if (document.getElementById('check_password_message')) {
			document.getElementById('check_password_message').innerHTML = check_password_message;
		}
		
		if (document.getElementById('check_password_picture')) {
			document.getElementById('check_password_picture').innerHTML = check_password_picture;
		}


		if (repeated_password) {
			check_repeat_password();
		}
		
		return result;

	}
}

// Функция проверки повтора пароля
function check_repeat_password() {

	if (document.getElementById('password') && document.getElementById('repeat_password')) {

		var check_repeat_password_message	= "пустое";
		var check_repeat_password_picture	= "";
		var result							= false;

		if (document.getElementById('password').value ==  document.getElementById('repeat_password').value) {

			check_repeat_password_message	= success[2];
			check_repeat_password_picture		= "<img src='/images/common/success.gif' alt=''>";
			result							= true;

		} else {

			check_repeat_password_message	= error[6];
			check_repeat_password_picture		= "<img src='/images/common/failure.gif' alt=''>";

		}

		if (document.getElementById('check_repeat_password_message')) {
			document.getElementById('check_repeat_password_message').innerHTML = check_repeat_password_message;
		}

		if (document.getElementById('check_repeat_password_picture')) {
			document.getElementById('check_repeat_password_picture').innerHTML = check_repeat_password_picture;
		}

		repeated_password = 1;
		return result;

	}

}

// Функции проверки e-mail'а
function check_email() {
	
	var email = document.getElementById('email').value;
	
	// Отправляем запрос на сервер
	$.getJSON( '/ajax/register.php', {command: 'check_email', email: email}, _check_email );
}

function _check_email(data) {
	if (document.getElementById('check_email_message') && document.getElementById('check_email_picture')) {
		
		if (data.success) {
			document.getElementById('check_email_picture').innerHTML = "<img src='/images/common/success.gif' alt=''>";
			document.getElementById('check_email_message').innerHTML = success[0];
			return true;
		}
		if (data.failure) {
			document.getElementById('check_email_picture').innerHTML = "<img src='/images/common/failure.gif' alt=''>";
			document.getElementById('check_email_message').innerHTML = error[data.message];
			return false;
		}
	}
}


// Функция проверки заполненности имени
function check_name() {
	
	var check_name_message	= "";
	var check_name_picture	= "";
	var result				= false;
	
	if (document.getElementById('name')) {
		var name = document.getElementById('name').value;
		
		if (name.length < 1) {
			
			check_name_message	= error[7];
			check_name_picture	= "<img src='/images/common/failure.gif' alt=''>";

		} else if (name.length < min_name_length) {
			
			check_name_message	= error[8];
			check_name_picture	= "<img src='/images/common/failure.gif' alt=''>";
			
		} else if (name.length > max_name_length) {
			
			check_name_message	= error[9];
			check_name_picture	= "<img src='/images/common/failure.gif' alt=''>";
			
		} else {
			
			check_name_message	= success[3];
			check_name_picture	= "<img src='/images/common/success.gif' alt=''>";
			result = true;
			
		}
	}
	
	if (document.getElementById('check_name_message')) {
		document.getElementById('check_name_message').innerHTML		= check_name_message;
	}
	
	if (document.getElementById('check_name_picture')) {
		document.getElementById('check_name_picture').innerHTML		= check_name_picture;
	}
	
	return result;

}



// Функция проверки заполненности каптчи
function check_captcha() {

	var result					= false;
	var check_captcha_message	= null;
	var check_captcha_picture	= null;

	if (document.getElementById('recaptcha_response_field')) {
		var name = document.getElementById('recaptcha_response_field').value;

		if (name.length < 1) {

			check_captcha_message	= error[10];
			check_captcha_picture	= "<img src='/images/common/failure.gif' alt=''>";

		} else {

			check_captcha_message	= '';
			check_captcha_picture	= "";
			result = true;

		}
	}

	if (document.getElementById('check_captcha_message')) {
		document.getElementById('check_captcha_message').innerHTML		= check_captcha_message;
	}

	if (document.getElementById('check_captcha_picture')) {
		document.getElementById('check_captcha_picture').innerHTML		= check_captcha_picture;
	}

	return result;

}



// Функция проверки полей
function check_fields() {
	
	password_result			= check_password();
	password_repeat_result	= check_repeat_password();
	name_result				= check_name();
	captcha_result			= check_captcha();

	
	var result = password_result & password_repeat_result & name_result & captcha_result;
	
	return result;
	
}


function register() {
	
	result = check_fields();
	
	if (result) {
		
		var email			= document.getElementById('email').value;
		var password		= document.getElementById('password').value;
		var repeat_password = document.getElementById('repeat_password').value;
		var name			= document.getElementById('name').value;
		var account_type	= document.getElementById('account_type').value;
		var recaptcha_response_field = document.getElementById('recaptcha_response_field').value;
		
	
		// Отправляем запрос на сервер
		$.getJSON( '/ajax/register.php', {
				command: 'register',
				email: email,
				password: password,
				repeat_password: repeat_password,
				name: name,
				account_type: account_type,
				recaptcha_response_field: recaptcha_response_field,
				recaptcha_challenge_field : $('#recaptcha_challenge_field').val(),
				manual_challenge : $('input[name=manual_challenge]').val()
		}, _register );
				
	}	
}

function _register(data) {
	
	if (data.failure) {
		var errors = data.data;
		for (var i in errors) {
			code = errors[i]
			for (var j in code) {
				switch (code[j]) {
					case 1:
						document.getElementById('check_email_message').innerHTML = error[1];
						document.getElementById('check_email_message').style.color = 'red';
						break;
					case 2:
						document.getElementById('check_email_message').innerHTML = error[2];
						document.getElementById('check_email_message').style.color = 'red';
						break;
					case 3:
						document.getElementById('check_email_message').innerHTML = error[3];
						document.getElementById('check_email_message').style.color = 'red';
						break;
					case 4:
						document.getElementById('check_password_message').innerHTML = error[4];
						document.getElementById('check_password_message').style.color = 'red';
						break;
					case 5:
						document.getElementById('check_password_message').innerHTML = error[5];
						document.getElementById('check_password_message').style.color = 'red';
						break;
					case 6:
						document.getElementById('check_repeat_password_message').innerHTML = error[6];
						document.getElementById('check_repeat_password_message').style.color = 'red';
						break;
					case 7:
						document.getElementById('check_name_message').innerHTML = error[7];
						document.getElementById('check_name_message').style.color = 'red';
						break;
					case 8:
						document.getElementById('check_name_message').innerHTML = error[8];
						document.getElementById('check_name_message').style.color = 'red';
						break;
					case 9:
						document.getElementById('check_name_message').innerHTML = error[9];
						document.getElementById('check_name_message').style.color = 'red';
						break;
					case 11:
						document.getElementById('check_captcha_message').innerHTML = error[11];
						document.getElementById('check_captcha_message').style.color = 'red';
						break;
						
				}
			}
		}
	}
	
	if (data.success) {
		if (document.getElementById('step2')) {
			
			document.getElementById('step1').style.display = 'none';
			document.getElementById('step2').style.display = 'none';
			document.getElementById('registration_complete').style.display = 'block';
			
		}
	}	
}

