﻿window.Basket = 
{
	
	currentItem : null,
	AddRemoveItem: function(prodId, quantity, el, itemType)
	{
		if (null == itemType)
			itemType = 0;
		if(null == quantity)
			quantity = 1;
		currentItem = new Object();
		currentItem.ProductId = prodId;
		currentItem.Quantity = quantity;
		currentItem.Element = el;
		if (itemType == 0)
			Avtek.Market.AvtekAjaxService.AddProductToBasket(prodId, quantity, Basket.OnBasketChangeResult, Basket.OnError, Basket.OnError);
		else if(itemType == 1)
			Avtek.Market.AvtekAjaxService.AddSparePartToBasket(prodId, quantity, Basket.OnBasketChangeResult, Basket.OnError, Basket.OnError);
		return false;
	},
	OnBasketChangeResult : function(arg)
	{
		if(arg == -1)
		{
			if(confirm('Для добавления товара в корзину вам необходимо зарегистрироваться. Перейти на форму регистрации?'))
			{
				window.location.href = '/_site-lang_/profile/';
			}
		}
		else if(arg == 0)
			Basket.RenderEmptyBasket(currentItem.Element);
		else if (arg == 1)
			Basket.RenderFullBasket(currentItem.Element);
		else
		{
			alert('При добавлени товара в корзину возникла ошибка');
		}
	},
	SetItemsStatus: function()
	{
		var arr = document.getElementsByTagName('A');
		var ids = new Array();
		for(var i=0;i<arr.length;i++)
		{
			if (arr[i].name == 'a_basket_item')
			{
				ids[ids.length] = arr[i].id.substr(14, arr[i].id.length - 14);   
			}
		}
		if (ids.length > 0)
		{
			Avtek.Market.AvtekAjaxService.CheckBasketItemsStatus(ids, Basket.OnCheckItemsStatusResult, Basket.OnError, Basket.OnError);
		}
	},
	OnCheckItemsStatusResult: function(arg)
	{
		for(var i=0;i<arg.length;i++)
		{
			var idstatus = arg[i].split(':');
			var statusCode = parseInt(idstatus[1]);
			var element = document.getElementById('a_basket_item_' + idstatus[0].toUpperCase());
			if (null != element)
			{
				if (statusCode == 0)
					Basket.RenderEmptyBasket(element);
				else
					Basket.RenderFullBasket(element);
			}
		}
	},
	RenderEmptyBasket: function(element)
	{
		element.innerHTML = window.Loc.AddToBasket;
		element.style.color = '#000';
		element.style.display = '';
	},
	RenderFullBasket: function(element)
	{
		element.innerHTML = window.Loc.RemoveFromBasket;
		element.style.color = '#ff5a00';
		element.style.display = '';
	},		
	OnError: function(arg)
	{
		if (confirm('При обращении к удалённому серверу произошла ошибка. Показать детали?'))
			Basket.Display(arg);
	},
	Display: function(arg)
	{
		var s = '';
		for(var i in arg)
		{
			s+= i + '=' + arg[i] + '\n\r';
		}
		alert(s);	
	},
	ShowHideOrderDetails: function(el, id)
	{
		var tr = el.parentNode.nextSibling;
		var ims = el.getElementsByTagName('IMG');
		var imPlus = ims[0];
		var imMinus = ims[1];
		if (tr.style.display == 'none')
		{
			imMinus.style.display = '';
			imPlus.style.display = 'none';
			var frames = tr.getElementsByTagName('IFRAME');
			if (frames.length == 0)
			{
				var td = tr.getElementsByTagName('TD')[0];
				td.innerHTML = '<iframe style="border:solid 1px #9ab1c0;" frameborder="0" scrolling="auto" width="100%" height="400" src="/orderdetails.aspx?_orderId='+ id + '"></iframe>';
			}
			
			tr.style.display = '';
		}
		else
		{
			tr.style.display = 'none';
			imMinus.style.display = 'none';
			imPlus.style.display = '';
		}
	}
	
},
Compare = 
{
	Submit: function()
	{
	
		var tbl = document.getElementById('tbl_compare');
		var cbs = tbl.getElementsByTagName('INPUT');
		var pString = '';
		for(var i=0;i<cbs.length;i++)
		{
		  if(cbs[i].checked)
			pString += cbs[i].value + ';';
		}
		if(pString.length == 0)
		{
			alert('Выбеоите товары для сравнения');
			return false;
		}
		ret = Avtek.Market.AvtekAjaxService.SubmitToCompare(pString, Compare.OnSubmitResult, Compare.OnError, Compare.OnError);
		  return false;
	},
	
	OnSubmitResult: function(arg)
	{
		window.location.href = '/ru/collation/';
	},
	OnError: function(arg)
	{
		alert('При обращении к удалённому серверу произошла ошибка');
	},
	
	CheckInCompareTable: function(pId)
	{
		Avtek.Market.AvtekAjaxService.IsInCompareTable(pId, Compare.OnCheckInCompareTableResult, Compare.OnError, Compare.OnError);
	},
	OnCheckInCompareTableResult: function(arg)
	{
        var a = document.getElementById('a_compare_' + arg.ProdId.toUpperCase());
        Compare.RenderCompareLink(a, arg);
	},
	
	ChangeElementState: function(prodId, catId)
	{
		Avtek.Market.AvtekAjaxService.AddToCompareTable(prodId, catId, Compare.OnCheckInCompareTableResult, Compare.OnError, Compare.OnError);
		return false;
	},
	
	ClearAll: function()
	{
		Avtek.Market.AvtekAjaxService.ClearCompareTable(Compare.OnClearAllResult, Compare.OnError, Compare.OnError);
		return false;
	},
	ClearSelected: function(elName)
	{
		var els = document.getElementsByTagName('input');
		var arr = new Array();
		for(var i=0;i<els.length;i++)
		{
			var el = els[i];
			if(el.name != elName)
				continue;
			if(!el.checked)
				continue;
			arr[arr.length] = el.value;
		}
		if(arr.length > 0)
			Avtek.Market.AvtekAjaxService.RemoveFromCompareTable(arr.join(';'), Compare.OnClearAllResult, Compare.OnError, Compare.OnError);	
		return false;
	},
	
	OnClearAllResult:function(arg)
	{
		window.location.reload();
	},
	
	CheckProducts: function(elName)
    {
		var el = document.getElementById(elName);
        if(el == null)
            return false;
        var result = false;
        var arr = el.getElementsByTagName('a');
        var pids = new Array();
        for(var i=0;i<arr.length;i++)
        {
            var a = arr[i];
            
            if(a.id != null && a.id.indexOf('a_compare_')  == 0)
            {
                result = true;
                pids[pids.length] = a.id.substr(10, a.id.length-10);    
            }
        }
        Avtek.Market.AvtekAjaxService.IsArrayItemsInCompareTable(pids, Compare.OnArrayCheckResult, Compare.OnError, Compare.OnError);
		return result;
    },
    
    OnArrayCheckResult: function (arg)
    {
		for(var i=0;i<arg.length;i++)
        {
            var pRes = arg[i];
            var a = document.getElementById('a_compare_' + pRes.ProdId.toString().toUpperCase());
			Compare.RenderCompareLink(a,pRes);        
        }
    },
	
	RenderCompareLink: function(a, pRes)
	{
		if (a == null)
			return;
		if(pRes.Exists)
		{
			a.innerHTML = window.Loc.RemoveFromCompareTable; 
			a.style.color = '#ff5a00';
		}
        else
        {
			a.innerHTML = window.Loc.AddToCompareTable;
			a.style.color = '#000';
        }
		a.style.display = '';
	}
}
