COOKIE_STORE_DAYS  = 30; 
ORD_COOKIE_ORDER   = "CASHFLOW_ORDER"; 
ORD_ITEM_SEP       = "|"; 
ORD_ITEM_PARAM_SEP = "*";  

ImgItemAddPath  = "img/add_cart.gif"; 
ImgItemDelPath  = "img/in_cart.gif";  
ImgItemAddText  = "++";
ImgItemDelText  = "OK";
ImgItemAddTitle = "Добавить товар в корзину"; 
ImgItemDelTitle = "Товар в корзине. Кликните, чтобы убрать его"; 

NUM_CF  = 0;
NUM_RVS = 1;
NUM_DP  = 2;
NUM_NULL  = 3;
NUM_SB = 4;
NUM_INVESTOR = 5;
NUM_MONO = 6;
NUM_MINI = 7;
NUM_DEL = 8;
NUM_BAN = 9;
NUM_EUR = 10;
NUM_DIS = 11;
//ид. игр
arGAME_ID = new Array(
"item001",
"item002", 
"item003", 
"item004", 
"item005",
"item006",
"item007",
"item008",
"item009",
"item010",
"item011",
"item012"
);
//цены игр
arGAME_COST = new Array(
599, 
990, 
4990, 
3500,
3500,
2970,
1180,
450,
1850,
2290,
1690,
1690
);

function PreparePage ()
{
   var tmp1, tmp2;

   CheckCookies();
   //подгружаем картинки
   tmp1 = new Image;
   tmp2 = new Image;
   tmp1.src = ImgItemDelPath;
   tmp2.src = ImgItemAddPath;
}

function CheckCookies ()
{
   if (!navigator.cookieEnabled)
      document.write("<div class=\"ErrorMsg\">Для покупок в нашем магазине включите cookies.</div>");
}

function GetCookie(_CookieName)
{
   var Res, p, l;

   Res = document.cookie;
   p = Res.indexOf(_CookieName);

   if (p >= 0)
   {
      p = p + _CookieName.length + 1;
      l = Res.indexOf(";", p);
      if (l < 0)
         l = Res.length - p;
      else
         l = l - p;

      Res = Res.substr(p, l);
   }
   else
      Res = "";

   return Res;
}

function SetCookie(_CookieName, _Value)
{
   var today = new Date();
   today.setDate(today.getDate() + COOKIE_STORE_DAYS);
   document.cookie = _CookieName + "=" + _Value + ';' + "expires=" + today.toGMTString() + ';';
}

function OrderAdd (_NewItem, _Cost)
{
   var Order, NewItem;

   Order = GetCookie(ORD_COOKIE_ORDER);
   if (Order.indexOf(_NewItem) < 0)
   {
      NewItem = _NewItem + ORD_ITEM_PARAM_SEP + _Cost + ORD_ITEM_SEP;
      SetCookie(ORD_COOKIE_ORDER, Order + NewItem);
   }
}

function OrderDel (_DelItem)
{
   var Order, p, l;

   Order = GetCookie(ORD_COOKIE_ORDER);
   p = Order.indexOf(_DelItem);
   if (p >= 0)
   {
      l = Order.indexOf(ORD_ITEM_SEP, p);
      if (l <= p)
         l = Order.length - 1;
      SetCookie(ORD_COOKIE_ORDER, Order.substr(0, p) + Order.substr(l + 1, Order.length - (l + 1)));
   }
}

function ChangeImg (_Img, _NewSrc, _NewAltText, _NewTitle)
{
   if (_Img)
   {
      _Img.src   = _NewSrc;
      if (_NewAltText)
         _Img.alt   = _NewAltText;
      if (_NewTitle)
         _Img.title = _NewTitle;
   }
}

function ParseItem (_Item, _Id, _Cost)
{
   var p, l;

   //выцепляем ид. товара
   p = 0;
   l = _Item.indexOf(ORD_ITEM_PARAM_SEP);
   _Id.value = _Item.substr(p, l);
   //выцепляем цену товара
   p = l + 1;
   l = _Item.indexOf(ORD_ITEM_PARAM_SEP, p);
   if (l <= 0)
      l = _Item.length;
   _Cost.value = parseFloat(_Item.substr(p, l - p));
   if (isNaN(_Cost.value))
      _Cost.value = 0;
}

function GetItemIdInt(_Item)
{
	var s, Res;

	s   = "item";
	Res = _Item.substr(s.length, 3);
	Res = parseInt(Res, 10);

	return Res;
}

function CalculateBasket ()
{
   var ItemCount, Size, id, se, s, p, b, tmp, Item;

   id = new String;
   se = new Number;
   id.value = new String;
   se.value = 0;

   ItemCount = 0;
   Size      = 0;
   tmp = 0;
   b = false;
   s = GetCookie(ORD_COOKIE_ORDER);
   //обрабатываем товары заказа
   do
   {
      p = s.indexOf(ORD_ITEM_SEP);
      if (p > 0)
      {
         Item = s.substr(0, p);
         if (Item.indexOf("group0") >= 0)
            tmp++;
         ItemCount++;
         ParseItem(Item, id, se);
         Size    += se.value;

         //обрезаем обработанный товар
         if (p < s.length)
            s = s.substr(p + 1, s.length - (p + 1));
         else
            s = "";
      }
   }
   while (p > 0);

   //выводим результат
   if (document.getElementById("basket_item_count"))
      document.getElementById("basket_item_count").innerHTML = ItemCount;
   if (document.getElementById("basket_cost"))
      document.getElementById("basket_cost").innerHTML       = Math.round(Size*100)/100;
}


function AddItemToOrder (_Item)
{
   var Id, Cost;

   //дописываем товар в заказ
   Id   = GetItemIdInt(_Item);
   Cost = arGAME_COST[Id - 1];
   OrderAdd(_Item, Cost);
   //пересчитываем количество позиций в корзине и ее размер
   CalculateBasket();
   //изменяем картинку на "удалить товар из заказа"
   ChangeImg(document.images[_Item], ImgItemDelPath, ImgItemDelText, ImgItemDelTitle);

   if (document.getElementById(_Item + "_checkbox"))
   {
      document.getElementById(_Item + "_checkbox").checked = true
   }
   ShowHideElement(_Item + "_text_del", "none");
   ShowHideElement(_Item + "_text_add", "block");
}


function DelItemFromOrder (_Item)
{
   //удаляем товар из заказа
   OrderDel(_Item);
   //пересчитываем количество позиций в корзине и ее размер
   CalculateBasket();
   //изменяем картинку на "добавить товар в заказ"
   ChangeImg(document.images[_Item], ImgItemAddPath, ImgItemAddText, ImgItemAddTitle);
   
   if (document.getElementById(_Item + "_checkbox"))
   {
      document.getElementById(_Item + "_checkbox").checked = false
   }
   ShowHideElement(_Item + "_text_add", "none");
   ShowHideElement(_Item + "_text_del", "block");
}


function ItemIsOrdered (_Item)
{
   var Res, Order;

   Res = true;
   Order = GetCookie(ORD_COOKIE_ORDER);
   if (Order.indexOf(_Item) < 0)
      Res = false;

   return Res;
}


function OrderItem (_Item)
{
   if (ItemIsOrdered(_Item))
      DelItemFromOrder(_Item);
   else
      AddItemToOrder(_Item);
}

function ClearOrderLite ()
{
   var ArrSize, i;

   if (GetCookie(ORD_COOKIE_ORDER) == "")
      return;

   ArrSize = document.images.length;
   for (i = 0; i < ArrSize; i++)
      if (document.images[i].name.indexOf("item") >= 0)  //если это товар
         ChangeImg(document.images[i], ImgItemAddPath, ImgItemAddText, ImgItemAddTitle);
   SetCookie(ORD_COOKIE_ORDER, "");
   CalculateBasket();
}

function ClearOrder ()
{
   var ArrSize, i;

   if (GetCookie(ORD_COOKIE_ORDER) == "")
      return;

   ArrSize = document.images.length;
   for (i = 0; i < ArrSize; i++)
      if (document.images[i].name.indexOf("item") >= 0)  //если это товар
         ChangeImg(document.images[i], ImgItemAddPath, ImgItemAddText, ImgItemAddTitle);

   if (form_1.cash)
      form_1.cash.checked = false;
   if (form_1.rvs)
      form_1.rvs.checked = false;
   if (form_1.sb)
      form_1.sb.checked = false;
   if (form_1.recommend)
      form_1.recommend.checked = false;
   if (form_1.investor)
      form_1.investor.checked = false;

   SetCookie(ORD_COOKIE_ORDER, "");
   CalculateBasket();
}


function CheckItem (_Item)
{
	if (ItemIsOrdered(_Item))
	{
		ChangeImg(document.images[_Item], ImgItemDelPath, ImgItemDelText, ImgItemDelTitle);
		if (document.getElementById(_Item + "_checkbox"))
		{
			document.getElementById(_Item + "_checkbox").checked = true
		}
	}

}


function ShowHideElement (_ElementId, _Display)
{
   if (!document.getElementById(_ElementId))
      return;

   if (_Display)
      document.getElementById(_ElementId).style.display = _Display;
   else
   switch (document.getElementById(_ElementId).style.display)
   {
      case "none" : document.getElementById(_ElementId).style.display = "block"; break;
      default     : document.getElementById(_ElementId).style.display = "none";
   }
}
