<?php 
$SiteUsers = & singleton('SiteUsers');

/* XSL шаблоны */
$xsl_letter = to_str($GLOBALS['LA']['xsl_letter']);
$xsl_registration = to_str($GLOBALS['LA']['xsl_registration']);

if (class_exists("Maillist"))
{
	$maillist = new Maillist();
}

/* Идентификатор текущего пользователя */
$site_users_id = $SiteUsers->GetCurrentSiteUser();

/* Если пользователь авторизирован, то показываем ему его анкетные данные, иначе страницу регистрации */
if ($site_users_id)
{
	$title = 'Анкетные данные';

	/* удаление значения дополнительного свойства типа "файл" */
	if (isset($_GET['delete_value_property']))
	{
		$SiteUsers->SetValueExtraProperty($site_users_id, '',
		array('id' => to_int($_GET['delete_value_property']),
		'delete' => true));
	}
}
else
{
	$title = 'Регистрация нового пользователя';
}

// Добавляем/редактируем информацию о пользователе
if (isset($_POST['add_user']))
{
	/* пароль необязателен при обновлении данных о пользователе */
	if (isset($_POST['site_users_login']) &&
	($site_users_id > 0 || isset($_POST['site_users_password']) && strlen($_POST['site_users_password']) > 0)
	&& isset($_POST['site_users_email'])
	&& isset($_POST['site_users_password_retry'])
	&& strpos($_POST['site_users_login'], 'http://') === false // Логин не начинается с http://
	)
	{
		if (to_str($_POST['site_users_password']) == to_str($_POST['site_users_password_retry']))
		{
			$param['site_users_login'] = to_str($_POST['site_users_login']);
			$param['site_users_password'] = to_str($_POST['site_users_password']);
			$param['site_users_email'] = to_str($_POST['site_users_email']);
			$param['site_users_name'] = to_str($_POST['site_users_name']);
			$param['site_users_surname'] = to_str($_POST['site_users_surname']);
			$param['site_users_patronymic'] = to_str($_POST['site_users_patronymic']);
			$param['site_users_phone'] = to_str($_POST['site_users_phone']);
			$param['site_users_fax'] = to_str($_POST['site_users_fax']);
			$param['site_users_site'] = to_str($_POST['site_users_site']);
			$param['site_users_icq'] = to_str($_POST['site_users_icq']);
			$param['site_users_country'] = to_str($_POST['site_users_country']);
			$param['site_users_postcode'] = to_str($_POST['site_users_postcode']);
			$param['site_users_city'] = to_str($_POST['site_users_city']);
			$param['site_users_address'] = to_str($_POST['site_users_address']);
			$param['site_users_company'] = to_str($_POST['site_users_company']);

			/* если пользователь авторизован */
			if ($site_users_id)
			{
				$param['site_users_confirmation'] = 1;

				/* обновляем данные о пользователе */
				$result = $SiteUsers->UpdateSiteUser($site_users_id, $param);

				if ($result > 0)
				{
						?>
						<h1>Ваши анкетные данные успешно изменены</h1>
						<p>Если Ваш браузер поддерживает автоматическое перенаправление через 5 секунд Вы перейдете в <a href="../">кабинет пользователя</a>. Если Вы не хотите ждать перейдите по соответствующей ссылке.</p>
						
						<script language="JavaScript" type="text/javascript">
						<!--
						function set_location()
						{
							location="../";
						}
						setTimeout('set_location()', 5000);
						//-->
						</script>
						<?php 
				}
			}
			else
			{
				/* Начинаем проверку кода подтверждения */
				$Captcha = new Captcha();

				/* Если неправильно введен код подтверждения */
				if (!$Captcha->ValidCaptcha(to_str($_POST['captcha_key']),to_str($_POST['captcha_keystring'])))
				{
					$result = -5; /* Неправильно введен код подтверждения */
				}
				else
				{
					/* Группа по умолчанию */
					$param['site_users_group_id'] = $SiteUsers->GetDefaultGroup();
					$param['xslname'] = $xsl_letter;

					// добавляем пользователя
					$result = $SiteUsers->InsertSiteUser($param);

					if ($result > 0)
					{
						// Проверяем куки пользователя на предмет наличия в них логина аффилиата
						if (isset($_COOKIE['affiliate_name'])) 
						{
							$affiliate = new affiliate();
							
							$affiliate_login = quote_smart($_COOKIE['affiliate_name']);
							
							$affiliate_row = $SiteUsers->GetSiteUserByLogin($affiliate_login);
							
							if ($affiliate_row) 
							{
								$affiliate_id = $affiliate_row['site_users_id'];
								
								// Проводим вставку пользователя аффилиата
								$affiliate->InsertAffiliate(array('site_users_id' => $result, 'affiliate_plans_id' => 0, 'affiliate_site_users_id' => $affiliate_id, 'affiliate_active' => 1));
							}
						}
						
						?>
						<h1>Спасибо за регистрацию</h1>
						<p>Для продолжения работы необходимо подтвердить регистрацию Ваших данных. 
						В Ваш адрес отправлено письмо, содержащее ссылку для подтверждения регистрации.</p>
						<p>Если Ваш браузер поддерживает автоматическое перенаправление через 10 секунд Вы перейдете на страницу <a href="../">идентификации пользователя</a>. Если Вы не хотите ждать перейдите по соответствующей ссылке.</p>
						<script language="JavaScript" type="text/javascript">
						<!--
						function set_location()
						{
							location="../";
						}
						setTimeout('set_location()', 10000);
						//-->
						</script>
						<?php 

						// Обрабатываем подписку пользователя
						if (class_exists("Maillist"))
						{
							$maillist->RenewMaillist($result, $_POST);
						}
					}
				}
			}

			/* Обновление/вставка прошли успешно */
			if ($result > 0)
			{
				/* Обновляем значения дополнительных свойств */
				$property_list = $SiteUsers->GetListExtraProperties($result);

				foreach ($property_list as $key => $value)
				{
					if (isset($_FILES[$value['site_users_extra_property_name']]))
					{
						$SiteUsers->SetValueExtraProperty($result, $_FILES[$value['site_users_extra_property_name']], array('id' => $value['site_users_extra_property_id']));
					}
					elseif ($value['site_users_extra_property_type'] != 'hidden')
					{
						$SiteUsers->SetValueExtraProperty($result, to_str($_POST[$value['site_users_extra_property_name']]), array('id' => $value['site_users_extra_property_id']));
					}
				}
			}
			else
			{
				/*
				Таблица значений $result
				-5 -- Неправильно введен код подтверждения
				-3 -- Пользователь с таким логином зарегистрирован ранее
				-2 -- Пользователь с таким e-mail зарегистрирован ранее
				-1 -- Введен некорректный e-mail
				*/

				$SiteUsers->ShowSiteUserRegistartion($site_users_id, $xsl_registration,	array('error' => $result, 'page_title' => $title));
			}
		}
		else
		{
			$error = -6; // Неверно введен повтор пароля

			$SiteUsers->ShowSiteUserRegistartion($site_users_id, $xsl_registration,	array('error' => $error, 'page_title' => $title));
		}
	}
	else
	{
		$error = -4; // Пожалуйста, задайте все обязательные параметры.

		$SiteUsers->ShowSiteUserRegistartion($site_users_id, $xsl_registration,

		array('error' => $error, 'page_title' => $title));
	}
}
else
{
	// выводим форму регистрации
	$SiteUsers->ShowSiteUserRegistartion($site_users_id, $xsl_registration, array('page_title' => $title));
}
?>
