function AddToBasket(product_id)
{
	var obj = $("item_count_" + product_id)
	var item_count = CheckItemCount(obj);
	
	if (item_count)
	{
		//var dateObj = new Date();
		//new Ajax.Updater('basket_amount', webRoot + 'add_to_basket/' + product_id + '/' + item_count + '/' + dateObj.getTime(), {onComplete:function(request){AddToBasketCallBack(request);}, asynchronous:true, evalScripts:true, requestHeaders:['X-Update', 'basket_amount']});
		location.href = webRoot + 'add_to_basket/' + product_id + '/' + item_count;
	}
	return false;
}

function AddToBasketCallBack(request) {
}

function CheckItemCount(obj, type)
{
	var item_count = 1;
	
	if (typeof obj != 'undefined')
	{
		obj.value = obj.value.trim();
		
		if (type == 1 && obj.value == "")
		{
			return 0;
		}
		var regExp = new RegExp("^[0-9]{1,}$", "i");
		
		if (obj.value != "" && !regExp.test(obj.value))
		{
			alert('Item count must be numeric');
			obj.value = "";
			obj.focus();
			return 0;
		}
		
		item_count = parseInt(obj.value);
		
		if (isNaN(item_count) || item_count < 1)
		{
			alert('Item count must be more then 0');
			obj.value = "";
			obj.focus();
			return 0;
		}
	}
	return item_count;
}

function ChangeItemCount(product_id, obj)
{
	var item_count = CheckItemCount(obj, 1);
	
	if (item_count)
	{
		var dateObj = new Date();
		new Ajax.Updater('basket_details', webRoot + 'update_basket_details/' + product_id + '/' + item_count+ '/' + dateObj.getTime(), {onComplete:function(request){UpdateBasketCallBack(request);}, asynchronous:true, evalScripts:true, requestHeaders:['X-Update', 'basket_details']});
	}
}

function UpdateBasketCallBack(request)
{
	var dateObj = new Date();
	new Ajax.Updater('basket_amount', webRoot + 'update_basket_amount/' + dateObj.getTime(), {asynchronous:true, evalScripts:true, requestHeaders:['X-Update', 'basket_amount']});
}

function AddBasketDiscount()
{
	var code = document.getElementById("basket_discount_code");
	
	if (typeof(code) == 'object')
	{
		code.value = code.value.trim();
		
		var dateObj = new Date();
		new Ajax.Request(webRoot + 'update_basket_discount/' + code.value + '/' + dateObj.getTime(), {onComplete:function(request){AddBasketDiscountCallBack(request);}, asynchronous:true, evalScripts:true});
	}
	return false;
}

function AddBasketDiscountCallBack(request)
{
	if (request.responseText == "is_error")
		document.getElementById("basket_discount_code_error").innerHTML = "Your discount code is not correct.";
	else
		document.getElementById("basket_discount_code_error").innerHTML = "";
	
	var dateObj = new Date();
	new Ajax.Updater('basket_amount', webRoot + 'update_basket_amount/' + dateObj.getTime(), {asynchronous:true, evalScripts:true, requestHeaders:['X-Update', 'basket_amount']});
	new Ajax.Updater('basket_details', webRoot + 'update_basket_details/0/0/' + dateObj.getTime(), {asynchronous:true, evalScripts:true, requestHeaders:['X-Update', 'basket_details']});
}