function openWindow(url)
{
	var ww = 800;
	var wh = 600;
	var wbx = Math.round((screen.width - ww) / 2);
	var wby = Math.round((screen.height - wh) / 2);
	var nw = window.open(url, 'romewarPlayersClasses', 'height='+wh+', width='+ww+',menubar=no, ,location=yes, resizable=yes, scrollbars=yes, status=no, statusbar=no, toolbar=no , top='+wby+', left='+wbx);
	nw.focus();
}

function openWindowFS(url)
{
	var nw = window.open(url, 'RomeWarGame', 'menubar=no,resizable=yes,fullscreen=yes,location=no,scrollbars=no,status=yes,statusbar=yes,toolbar=no');
	if (nw) 
		setTimeout("window.opener = window.parent; window.parent.close();", 10000);
	else
		alert("Разрешите всплывающие (popup) окна!");
}

/**
 * Добавить подсказку в текстовое поле
 * 
 * @param id Идентификатор поля
 * @param prompt Текст подсказки
 */
function add_prompt(id, prompt)
{
	var element = $('#' + id); 
	element.
		blur(function (e) {
			if (element.val() == '')
			{
				element.val(prompt);
				element.addClass('prompt');
			}
		}).
		focus(function (e) {
			element.removeClass('prompt');
			if (element.val() == prompt)
				element.val('');
		});
	if (element.val() == '')
	{
		element.val(prompt);
		element.addClass('prompt');
	}
}

/**
 * Проверка корректности заполнения полей формы регистрации
 * 
 * @param field_id Идентификатор поля
 * @returns {Boolean}
 */
function check_registration(field_id)
{
	var field = $('#' + field_id);
	var message = '';
	
	// Общие проверки
	switch (field.attr('type'))
	{
		case 'text':
		case 'password':
			if (field.val() == '')
				message = 'Это поле не может быть пустым';
			break;
	}
	
	// Специальные проверки
	if (message == '')
	{
		switch (field_id)
		{
			case 'reg-login':
				if (!/^([0-9a-zA-Z\-\_\~\.]{4,16})$|^([0-9А-ЯёЁа-я\-\_\~\.]{4,16})$/i.test(field.val()))
					message = 'Имя может состоять только из латинских или русских букв, цифр и символов -, _, ., ~. Длина 4-16 символов.';
				break;
			case 'reg-password':
				if (field.val().length < 6 || field.val().length > 32)
					message = 'Пароль должен содержать от 6 до 32 символов';
				break;
			case 'reg-password2':
				if (field.val() != $('#reg-password').val())
					message = 'Пароли не совпадают';
				break;
			case 'reg-email':
				if (!/^[a-z0-9_\.-]+@([a-z0-9_-]+\.)+([a-z0-9_-]+)$/i.test(field.val()))
					message = 'Введён некорректный адрес e-mail';
				break;
			case 'reg-terms':
				if (!field.is(':checked'))
					message = 'Для продолжения регистрации необходимо согласиться с правилами';
				break;
		}
	}
	
	$('#' + field_id + '-error').text(message);
	
	return message == '';
}

/**
 * Инициализация формы регистрации, установка обработчиков
 */
function init_registration()
{
	add_prompt('reg-turing', 'Введите текст');
	$('#reg-terms').change(function(e) { check_registration(e.target.id); });
	$('#register-form input').blur(function(e) {
		check_registration(e.target.id);
	}).keyup(function(e) {
		if ($('#' + e.target.id + '-error').text().length > 0)
			check_registration(e.target.id);
	});
	$('#reg-turing-image').click(function(e) {
		var url = $(e.target).attr('src').split('?')[0] + '?' + Math.floor(Math.random() * 1000);
		$(e.target).attr('src', url);
		$('#reg-turing').val('');
	});
	$('#reg-turing-a').click(function(e) {
		var url = $('#reg-turing-image').attr('src').split('?')[0] + '?' + Math.floor(Math.random() * 1000);
		$('#reg-turing-image').attr('src', url);
		$('#reg-turing').val('');
		return false;
	});
	$('#register-form').submit(function(e) {
		var submit = $('#register');
		if (submit.attr('disabled') ||
			!check_registration('reg-login') ||
			!check_registration('reg-password') ||
			!check_registration('reg-password2') ||
			!check_registration('reg-email') ||
			!check_registration('reg-terms') ||
			!check_registration('reg-turing'))
			return false;
		submit.attr('disabled', 'disabled');
		$.post('index_parser.php', $(e.target).serialize(), function (result) {
			if (result.status == 'ok')
				on_register_success(result.data.login);
			else
			{
				if (result.message)
					$('#register-error').text(result.message);
				if (result.errors)
					$.each(result.errors, function (index, value) {
						$('#reg-' + index + '-error').text(value);
					});
				submit.removeAttr('disabled');
			}
		}, 'json');
		return false;
	});
}
