<?php
if (class_exists('SiteUsers'))
{
	$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']) && mb_strlen($_POST['site_users_password']) > 0)
		&& isset($_POST['site_users_email'])
		&& isset($_POST['site_users_password_retry'])
		&& mb_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), array(), array('cache_off' => true));
				}
			}
			else
			{
				$error = -6; // Неверно введен повтор пароля
	
				$SiteUsers->ShowSiteUserRegistartion($site_users_id, $xsl_registration,	array('error' => $error, 'page_title' => $title), array(), array('cache_off' => true));
			}
		}
		else
		{
			$error = -4; // Пожалуйста, задайте все обязательные параметры.
	
			$SiteUsers->ShowSiteUserRegistartion($site_users_id, $xsl_registration,	array('error' => $error, 'page_title' => $title), array(), array('cache_off' => true));
		}
	}
	else
	{
		// выводим форму регистрации
		$SiteUsers->ShowSiteUserRegistartion($site_users_id, $xsl_registration, array('page_title' => $title), array(), array('cache_off' => true));
	}
}
else
{
	?>
	<h1>Пользователи сайта</h1>
	<p>Функционал недоступен, приобретите более старшую редакцию.</p>
	<p>Модуль &laquo;<a href="http://www.hostcms.ru/hostcms/modules/users/">Пользователи сайта</a>&raquo; доступен в редакциях &laquo;<a href="http://www.hostcms.ru/hostcms/editions/corporation/">Корпорация</a>&raquo; и &laquo;<a href="http://www.hostcms.ru/hostcms/editions/business/">Бизнес</a>&raquo;.</p> 
	<?php
}
?>