function ShowQuickBuy(event, ProductId, State)
{
	switch (State)
	{
		case '1':
			var OverlayPosition = Event.pointerY(event) - 200;
			$('choose-size').setStyle({top: OverlayPosition + "px"});
			
			$('btn_add-to-bag').show();
			$('choose-size').show();
			$('ajax_loadingmsg').show();
			$('ajax_sizearea').hide();
			$('ajax_error').hide();
			$('btn_add-to-bag').hide();
			
			new Ajax.Request('/ajax/eshop/basket/getsizelist/'+ProductId, {
				method: 'post',
				onSuccess: function(transport)
				{
					var Response = EvalResponse(transport);
					
					if('nosize' == Response.sizes)
					{
						$('ajax_loadingmsg').hide();
						$('ajax_sizearea').update(Response.html_string);
						$('ajax_sizearea').show();
						BuyNow();
					}
					else if(true == Response.sizes)
					{
						$('ajax_loadingmsg').hide();
						$('ajax_sizearea').update(Response.html_string);
						$('ajax_sizearea').show();
						$('btn_add-to-bag').show();
					}
					else
					{
						ShowQuickBuyError(Response.html_string);
					}
				},
				onFailure: function(transport, jsonreponse)
				{
					ShowQuickBuyError('<p>The request has taken longer than normal to load, please try again or click buy from the product details page.</p>');
				},
				onException: function()
				{
					ShowQuickBuyError('<p>The request has taken longer than normal to load, please try again or click buy from the product details page.</p>');
				}
			});
			break;

		case '0':
		default:
			HideQuickBuy();
			break;
	}
	
	return false;
}

function HideQuickBuy()
{
	$('choose-size').hide();
	$('ajax_loadingmsg').hide();
	$('ajax_error').hide();
	$('ajax_sizearea').update('');
}

function ShowQuickBuyError(ErrorMsg)
{
	$('ajax_loadingmsg').hide();
	$('ajax_sizearea').update('');
	$('ajax_sizearea').hide();
	$('ajax_error').update(ErrorMsg);
	$('btn_add-to-bag').hide();
	$('ajax_error').show();
}

function BuyNow()
{
	HideBasket('shopping-bag');
	
	AjaxBasketOpen = true;

	// show size chooser loading..
	$('btn_add-to-bag').show();
	$('ajax_loadingmsg').show();
	$('ajax_sizearea').hide();
	$('btn_add-to-bag').hide();

	// show ajax basket loading..
	$('ajax_loadingmsg2').show();
	$('ajax_error').hide();
	$('ajax_basket').hide();
	//$('shopping-bag').show();
	
	new Ajax.Request('/ajax/eshop/basket/addproduct/', {
		method: 'post',
		parameters: $('frm_choose-size').serialize(true),
		onSuccess: function(transport)
		{
			var Response = EvalResponse(transport);
			
			if (true == Response.error)
			{
				HideBasket();
				ShowQuickBuyError(Response.html_string);
			}
			else
			{
				ShowQuickBuy('', '', '0');
				ShowBasket(Response.html_string);
				new Effect.ScrollTo('shopping-bag', {offset: -54});
				SetHideBasketTimeout();
			}
		},
		onFailure: function(transport, json)
		{
			HideBasket();
			$('btn_add-to-bag').show();
			ShowQuickBuyError('<p>The request has taken longer than normal to load, please try again or click buy from the product details page.</p>');
		},
		onException: function(transport)
		{
			HideBasket();
			$('btn_add-to-bag').show();
			ShowQuickBuyError('<p>The request has taken longer than normal to load, please try again or click buy from the product details page.</p>');
		}
	});
	return false;
}


function SaveCategory(FormId)
{
	new Ajax.Request('/ajax/online-shop/updatecategory/', 
	{
		method: 'post',
		parameters: $(FormId).serialize(),
		onComplete: function(transport)
		{
	  		try 
	  		{
        		Response = eval('('+transport.responseText+')');
        		if(Response.message)
        		{
        			Message = Response.message;
        		}
        		else
        		{
        			Message = 'Category update failed. Please, try again.'
        		}
        		
        		if(Response.status && 'ok' == Response.status)
        		{        			
        			$(FormId).hide();
        		}
        		
        		ShowMessage(Message, 'message_'+FormId);
    		} 
    		catch (e) 
    		{
    			ShowMessage(e.toString(), 'message_'+FormId);
    		}
		}
	});
}

/**
* Shows and hides text specified by What in an html element with Id Where 
*
* @param string What (message)
* @param string Where (html element id)
*/
function ShowMessage(What, Where)
{
	$(Where).update(What);
	$(Where).style.display = 'block';
	setTimeout('$(\''+Where+'\').hide()', 2000);
}