//##################################################################################################

function Basket_UpdateHeaderStatus()
{
	//***************
	new Ajax.Request( '/basket/act/update_header_status/' ,
	{
		method:'get',
		onSuccess: function(transport)
		{
			$('basket_header_status').innerHTML = transport.responseText;
		},
		onFailure: function(){}
	}
	);
	//***************
	
	return true;
}

function Basket_AddGoods( id_goods , amount , type_basket )
{
	(document.getElementById('goods_add_to_basket_container_'+id_goods)).style.display = 'none';
	(document.getElementById('goods_go_to_basket_container_'+id_goods)).style.display = 'none';
	(document.getElementById('goods_status_to_basket_container_'+id_goods)).style.display = 'block';
	
	//***************
	new Ajax.Request( '/basket/act/add_goods/?id_goods='+id_goods+'&amount='+amount+'&type_basket='+type_basket ,
	{
		method:'get',
		onSuccess: function(transport)
		{
			Basket_UpdateHeaderStatus();
			(document.getElementById('goods_add_to_basket_container_'+id_goods)).style.display = 'none';
			(document.getElementById('goods_go_to_basket_container_'+id_goods)).style.display = 'block';
			(document.getElementById('goods_status_to_basket_container_'+id_goods)).style.display = 'none';
		},
		onFailure: function()
		{
			Basket_UpdateHeaderStatus();
			(document.getElementById('goods_add_to_basket_container_'+id_goods)).style.display = 'block';
			(document.getElementById('goods_go_to_basket_container_'+id_goods)).style.display = 'none';
			(document.getElementById('goods_status_to_basket_container_'+id_goods)).style.display = 'none';
		}
	}
	);
	//***************
	
	return true;
}

//##################################################################################################

var basket_flag_update_current = 1;
var basket_flag_update_waiting = 1;
var basket_flag_update_deferred = 1;

var basket_timer_calculate = 0;
var basket_amount_id_focus = 0;

function Basket_SelectList( type )
{
	if( (document.getElementById('basket_tab_'+type)).className == 'basket_tabs_selected' )
	return false;
	
	if( type == 'current' )
	{
		(document.getElementById('basket_tab_current')).className = 'basket_tabs_selected';
		(document.getElementById('basket_tab_waiting')).className = '';
		(document.getElementById('basket_tab_deferred')).className = '';
	}
	if( type == 'waiting' )
	{
		(document.getElementById('basket_tab_current')).className = '';
		(document.getElementById('basket_tab_waiting')).className = 'basket_tabs_selected';
		(document.getElementById('basket_tab_deferred')).className = '';
	}
	if( type == 'deferred' )
	{
		
		(document.getElementById('basket_tab_current')).className = '';
		(document.getElementById('basket_tab_waiting')).className = '';
		(document.getElementById('basket_tab_deferred')).className = 'basket_tabs_selected';
	}	
	
	if( type == 'current' && basket_flag_update_current == 1 ||
		type == 'waiting' && basket_flag_update_waiting == 1 ||
		type == 'deferred' && basket_flag_update_deferred == 1 )
		{
			Basket_UpdateList(type,1);
		}
	
	if( type == 'current' )
	{
		(document.getElementById('basket_container_current')).style.display = 'block';
		(document.getElementById('basket_container_waiting')).style.display = 'none';
		(document.getElementById('basket_container_deferred')).style.display = 'none';
	}
	if( type == 'waiting' )
	{
		(document.getElementById('basket_container_current')).style.display = 'none';
		(document.getElementById('basket_container_waiting')).style.display = 'block';
		(document.getElementById('basket_container_deferred')).style.display = 'none';
	}
	if( type == 'deferred' )
	{
		(document.getElementById('basket_container_current')).style.display = 'none';
		(document.getElementById('basket_container_waiting')).style.display = 'none';
		(document.getElementById('basket_container_deferred')).style.display = 'block';
	}	
	
	return true;
}

function Basket_UpdateList( type , preloader )
{	
	if( preloader == 1 )
	(document.getElementById('basket_content_'+type)).innerHTML = '<table><tr><td style="padding:10px;"><img src="/images/ajax-load2.gif" width="16" height="16" align="top" /> &nbsp; обновляется содержимое списка</td></tr></table>';
	
	new Ajax.Request( '/basket/act/get_content/?type='+type ,
	{
		method:'get',
		onSuccess: function(transport)
		{
			if( transport.responseText == '' )
			(document.getElementById('basket_content_'+type)).innerHTML = '<table><tr><td style="padding:10px;">Вы еще не добавляли товары в этот список</td></tr></table>';
			else
			(document.getElementById('basket_content_'+type)).innerHTML = transport.responseText;
			
			if( type == 'current' )
			basket_flag_update_current = 0;
			if( type == 'waiting' )
			basket_flag_update_waiting = 0;
			if( type == 'deferred' )
			basket_flag_update_deferred = 0;
			
			if( basket_amount_id_focus != 0 )
			{
				(document.getElementById('basket_input_amount_'+basket_amount_id_focus)).focus();
				basket_amount_id_focus = 0;
			}
			
			if( type == 'current' )
			Basket_UpdateSumPrice( type );
			
			Basket_UpdateHeaderStatus();
		},
		onFailure: function()
		{
			(document.getElementById('basket_content_'+type)).innerHTML = '<table><tr><td style="padding:10px;">Вы еще не добавляли товары в этот список</td></tr></table>';
			
			if( type == 'current' )
			basket_flag_update_current = 0;
			if( type == 'waiting' )
			basket_flag_update_waiting = 0;
			if( type == 'deferred' )
			basket_flag_update_deferred = 0;
			
			if( basket_amount_id_focus != 0 )
			{
				(document.getElementById('basket_input_amount_'+basket_amount_id_focus)).focus();
				basket_amount_id_focus = 0;
			}
			
			if( type == 'current' )
			Basket_UpdateSumPrice( type );
			
			Basket_UpdateHeaderStatus();
		}
	}
	);
	
	return true;
}

function Basket_UpdateSumPrice( type )
{	
	if( type == 'current' )
	{		
		if( document.getElementById('sum_price_output') != undefined )
		{
			var sum_price = 0;
			if( document.getElementById('sum_price_hidden') != undefined  )
			sum_price = document.getElementById('sum_price_hidden').value;
			document.getElementById('sum_price_output').innerHTML = sum_price;
					
			return true;
		}
	}
	
	return false;
}

//##################################################################################################

function Basket_CalculateItem( id , input , default_value , type )
{		
	if( basket_timer_calculate != 0 )
	{
		clearInterval(basket_timer_calculate);
		basket_timer_calculate = 0;
	}
	
	basket_timer_calculate = setInterval( function(){
		clearInterval(basket_timer_calculate);
		basket_timer_calculate = 0;
		
		if( input.value == '' )
		return false;
		
		if( default_value == input.value )
		return false;
		
		new Ajax.Request( '/basket/act/calculate_goods/?id='+id+'&amount='+input.value ,
		{
			method:'get',
			onSuccess: function(transport)
			{
				basket_amount_id_focus = id;
				Basket_UpdateList(type,0);
			},
			onFailure: function()
			{
				basket_amount_id_focus = id;
				Basket_UpdateList(type,0);
			}
		}
		);
		
	} , 400 );
	
	return true;
}

function Basket_DeleteItem( id , type )
{	
	if( confirm('Вы действительно хотите удалить этот элемент?') == false )
	return false;
	
	new Ajax.Request( '/basket/act/delete_goods/?id='+id ,
	{
		method:'get',
		onSuccess: function(transport)
		{
			Basket_UpdateList(type,0);
		},
		onFailure: function()
		{
			Basket_UpdateList(type,0);
		}
	}
	);
	
	return true;
}

function Basket_MoveItem( id , type , presence )
{	
	var link = '';
	
	if( type == 'current' )
	{
		link = '/basket/act/move_goods/?id='+id+'&type_basket=3';
	}
	if( type == 'waiting' )
	{
		if( presence == 0 )
		link = '/basket/act/move_goods/?id='+id+'&type_basket=3';
		if( presence > 0 )
		link = '/basket/act/move_goods/?id='+id+'&type_basket=1';
	}
	if( type == 'deferred' )
	{
		if( presence == 0 )
		link = '/basket/act/move_goods/?id='+id+'&type_basket=2';
		if( presence > 0 )
		link = '/basket/act/move_goods/?id='+id+'&type_basket=1';
	}

	new Ajax.Request( link,
	{
		method:'get',
		onSuccess: function(transport)
		{
			if( type == 'current' )
			{
				basket_flag_update_current = 0;
				basket_flag_update_waiting = 1;
				basket_flag_update_deferred = 1;
			}
			if( type == 'waiting' )
			{
				basket_flag_update_current = 1;
				basket_flag_update_waiting = 0;
				basket_flag_update_deferred = 1;
			}
			if( type == 'deferred' )
			{
				basket_flag_update_current = 1;
				basket_flag_update_waiting = 1;
				basket_flag_update_deferred = 0;
			}
			Basket_UpdateList(type,0);
		},
		onFailure: function()
		{
			if( type == 'current' )
			{
				basket_flag_update_current = 0;
				basket_flag_update_waiting = 1;
				basket_flag_update_deferred = 1;
			}
			if( type == 'waiting' )
			{
				basket_flag_update_current = 1;
				basket_flag_update_waiting = 0;
				basket_flag_update_deferred = 1;
			}
			if( type == 'deferred' )
			{
				basket_flag_update_current = 1;
				basket_flag_update_waiting = 1;
				basket_flag_update_deferred = 0;
			}
			Basket_UpdateList(type,0);
		}
	}
	);
	
	return true;
}

//##################################################################################################
