<?php 
/* Создаем экземпляр класса магазина (при создании устанавливаем флаг необходимости очитстки кукисов в истину) */
$shop = new shop(true);

/* Идентификатор интернет-магазина */
$shop_id = to_int($GLOBALS['LA']['shop_id']);

/**
 * Использовать ли контроль данных, полученных из cookies
 */
// $shop->use_cookies_read_control = true;

// Обработка AJAX-запросов при заказе
if (isset($_REQUEST['action']) && $_REQUEST['action'] == 'get_location' && isset($_REQUEST['shop_country_id']))
{
	$shop_country_id = to_int($_REQUEST['shop_country_id']);

	$result = array();

	if ($shop_country_id)
	{
		// Расположения заполняем только тогда, когда страна указана
		$res = $shop->GetAllLocation($shop_country_id);

		if ($res)
		{
			while ($row = mysql_fetch_assoc($res))
			{
				$result[$row['shop_location_id']] = $row['shop_location_name'];
			}
		}
	}

	$JsHttpRequest = new JsHttpRequest(SITE_CODING);

	$GLOBALS['_RESULT'] = array(
	'result' => $result);

	echo $JsHttpRequest->LOADER;
	exit();
}

if (isset($_REQUEST['action']) && $_REQUEST['action'] == 'get_city' && isset($_REQUEST['shop_location_id']))
{
	$shop_location_id = to_int($_REQUEST['shop_location_id']);

	$result = array();

	if ($shop_location_id)
	{
		// Города заполняем только тогда, когда расположение указано
		$res = $shop->GetAllCity($shop_location_id);

		if ($res)
		{
			while ($row = mysql_fetch_assoc($res))
			{
				$result[$row['shop_city_id']] = $row['shop_city_name'];
			}
		}
	}

	$JsHttpRequest = new JsHttpRequest(SITE_CODING);

	$GLOBALS['_RESULT'] = array(
	'result' => $result);

	echo $JsHttpRequest->LOADER;
	exit();
}

if (isset($_REQUEST['action']) && $_REQUEST['action'] == 'get_cityarea' && isset($_REQUEST['shop_city_id']))
{
	$shop_city_id = to_int($_REQUEST['shop_city_id']);

	$result = array();

	// Города заполняем только тогда, когда расположение указано
	if ($shop_city_id)
	{
		$res = $shop->GetAllCityArea($shop_city_id);

		if ($res)
		{
			while ($row = mysql_fetch_assoc($res))
			{
				$result[$row['shop_city_area_id']] = $row['shop_city_area_name'];
			}
		}
	}

	$JsHttpRequest = new JsHttpRequest(SITE_CODING);

	$GLOBALS['_RESULT'] = array(
	'result' => $result);

	echo $JsHttpRequest->LOADER;
	exit();
}
// END обработка AJAX-запросов при заказе

if (class_exists("SiteUsers"))
{
	/* Определяем идентификатор текущего пользователя */
	$SiteUsers = & singleton('SiteUsers');
	$site_users_id = $SiteUsers->GetCurrentSiteUser();
}
else
{
	$site_users_id = false;
}

// Повторение заказа
if (to_str($_REQUEST['action']) == 'repeat')
{
	$shop_order_id = to_int($_REQUEST['shop_order_id']);

	$order_row = $shop->GetOrder($shop_order_id);

	// Заказ найден
	if ($order_row)
	{
		// Если заказ принадлежит этому пользователю
		if ($order_row['site_users_id'] == $site_users_id && $site_users_id != 0)
		{
			$result_order_items = $shop->GetOrderItems($shop_order_id);
			$shop_id_from_order = to_int($order_row['shop_shops_id']);

			while ($row = mysql_fetch_assoc($result_order_items))
			{
				// Число товаров передаем, если посетитеь кладет в корзину больше одного товара
				if (to_int( $row['shop_order_items_quantity']) > 0)
				{
					$count = to_int( $row['shop_order_items_quantity']);
				}

				/* Добавляем товар в корзину */
				$shop->AddIntoCart(array('user_id' => $site_users_id,
				'shop_id' => $shop_id_from_order,
				'item_id' => $row['shop_items_catalog_item_id'],
				'count' => $count));
			}
		}
	}
}

// Запускаем сессию, если пользователь не авторизирован и пришли данные для регистрации
if ($site_users_id == 0 && isset($_POST['site_users_login'])
&& isset($_POST['site_users_password'])
&& isset($_POST['site_users_email'])
&& !isset($_SESSION))
{
	session_start();
}

$GLOBALS['external_propertys'] = array();

//print_r($_POST);

/* Необходимо перенести товары из кукисов в сессию и очистить кукисы */
if (isset($_POST['step_1_1a']) && !class_exists("SiteUsers"))
{
	// Если сессия не была запущена - стартуем ее
	if (!isset($_SESSION))
	{
		@session_start();
	}

	/* Читаем массив из кукисов */
	if (!empty($_COOKIE['CART']))
	{
		$session_cart = array();
		$postpone_items = array();

		$cart_from_cookies = $shop->GetCookieCart();

		$items = to_array($cart_from_cookies[$shop_id]);

		foreach ($items as $key => $value)
		{
			if ($value['shop_cart_flag_postpone'])
			{
				/* Оставляем товар в корзине кукисов */
				$postpone_items[$key] = $value;
			}
			else
			{
				/* Добавляем в корзину сессии */
				$session_cart[$key] = $value;
			}
		}
		
		/* Добавляем данные в сессию */
		$_SESSION['CART'][$shop_id] = $session_cart;

		/* Если массив с отложенными товарами не пуст - сохраняем его в кукисы */
		if (count($postpone_items) > 0)
		{
			$cart_from_cookies[$shop_id] = $postpone_items;
		}
		else
		{
			/* Удалям целиком кукисы карзины для данного магазина */
			unset($cart_from_cookies[$shop_id]);
		}

		/* Сохраняем данные */
		$shop->SetCookieCart($cart_from_cookies, time() + 31536000, '/');
	}
}

/* Переданы данные для авторизации */
if (isset($_POST['step1_1']))
{
	/* Проверяем правильность введенных данных */
	$site_users_id = $SiteUsers->ValidUser(to_str($_POST['login']), to_str($_POST['password']));

	/* Проверяем подтвердил ли пользователь регистрацию */
	if ($site_users_id == -1)
	{
		$GLOBALS['external_propertys']['error'] = -5; /* Вы не активировали свой аккаунт. По указанному адресу отправлено письмо с инструкцией об активации. После активации Вы можете авторизироваться. */
	}
	elseif ($site_users_id > 0)
	{
		// Пользователь ввел верные данные, авторизируем его
		$SiteUsers->SetCurrentSiteUser($site_users_id);
	}
	else
	{
		/* Неверные данные пользователя */
		$GLOBALS['external_propertys']['error'] = -6;
	}
}

/* AJAX добавление товара в корзину */
if (isset($_GET['ajax_add_item_id']))
{
	$param = array();
	$param['shop_id'] = $shop_id;
	$param['item_id'] = to_int($_GET['ajax_add_item_id']);
	$param['user_id'] = $site_users_id;

	// Число товаров передаем, если посетитеь кладет в корзину больше одного товара
	if (to_int($_GET['count']) > 0)
	{
		$param['count'] = to_int($_GET['count']);
	}

	// Добавляем товар в корзину
	$shop->AddIntoCart($param);

	// Отображаем корзину
	$JsHttpRequest = new JsHttpRequest(SITE_CODING);

	ob_start();
	$shop->ShowCart($shop_id, $site_users_id, to_str($GLOBALS['LA']['xsl_little_cart']));
	$little_cart_html = ob_get_clean();
	
	$GLOBALS['_RESULT'] = array('cart' => $little_cart_html);

	echo $JsHttpRequest->LOADER;
	exit();
}

/* добавление товара в корзину */
if (to_str($_GET['action']) == 'add')
{
	$param = array();
	$param['shop_id'] = $shop_id;
	$param['item_id'] = to_int($_GET['item_id']);
	$param['user_id'] = $site_users_id;

	// Число товаров передаем, если посетитеь кладет в корзину больше одного товара
	if (to_int($_GET['count']) > 0)
	{
		$param['count'] = to_int($_GET['count']);
	}

	/* Добавляем товар в корзину */
	$shop->AddIntoCart($param);
}

/* Удаляение товара из корзины */
if (to_str($_GET['action']) == 'delete_item')
{
	$param = array();
	$param['shop_id'] = $shop_id;
	$param['item_id'] = to_int($_GET['item_id']);

	/* Проверяем наличие пользователя */
	if ($site_users_id != 0)
	{
		$param['user_id'] = $site_users_id;
	}

	$shop->DeleteCart($param);
}

/* Пересчет товара в корзине */
if (isset($_POST['recount']))
{
	$param = array();

	foreach ($_POST as $key => $value)
	{
		$param['item_id'] = $key;

		/* Получаем идентификатор записи в корзине по идентификатору пользователя и товара */
		$cart_id = $shop->GetItemFromCart($shop_id, $site_users_id, $param['item_id']);

		$param['cart_id'] = to_int($cart_id['shop_cart_id']);
		$param['user_id'] = $site_users_id;
		$param['shop_id'] = $shop_id;
		$param['count'] = to_int($value);

		/* Если установлен флажок - делаем товар отложенным */
		$param['postpone'] = !empty($_POST['flag_postpone'.$key]) ? 1 : 0;

		/* Если количество = 0 - удаляем из корзины */
		if ($param['count'] == 0)
		{
			$shop->DeleteCart($param);
		}
		else
		{
			$shop->UpdateCart($param);
		}
	}
}

?>