var addError = 'Не удалось добавить товар';
var incError = 'Не удалось увеличить количество товара';
var deсError = 'Не удалось уменьшить количество товара';
var delError = 'Не удалось удалить товар';
var clrError = 'Не удалось очистить корзину';

// загрузка корзинки
function getbasket(){
	var http_ready = 0;
	var xmlhttp = getHTTPObject();
	xmlhttp.open("GET", "/basket/get.p3", true);
	xmlhttp.setRequestHeader('If-Modified-Since', 'Thu, 22 Nov 2001 00:00:01 GMT');
	xmlhttp.onreadystatechange = function(){
		if(xmlhttp.readyState == 4) {
			if (xmlhttp.status == 200) {
				var oBasket = document.getElementById('basket');
				if(oBasket){
					if (xmlhttp.responseText != ''){
						oBasket.innerHTML = xmlhttp.responseText;
					} else {
						oBasket.innerHTML = "Не удалось загрузить корзину";
					}
				}
			} else {
				alert("Ошибка доставки данных:\nНевозможно получить ответ от сервера.");
			};
		}
	}
	xmlhttp.send(null);
}

// добавление действия в корзину
function saveaction(act,id,warn,errmsg,cnt){
	var http_ready = 0;
	var xmlhttp = getHTTPObject();
	var url = "/basket/action.p3?action="+act+"&product="+id;
	if(cnt){
		url = url + "&cnt=" + cnt;
	}
	xmlhttp.open("GET", url, true);
	xmlhttp.setRequestHeader('If-Modified-Since', 'Thu, 22 Nov 2001 00:00:01 GMT');
	xmlhttp.onreadystatechange = function(){
		if(xmlhttp.readyState == 4) {
			if (xmlhttp.status == 200) {
				var oBasket = document.getElementById('basket');
				if(oBasket){
					if (xmlhttp.responseText != ''){
						if(warn == 0){
							// мы на странице корзины, перезагружаем ее всю
							reloadbasket(id);
						}
						if(warn == 1){
							// сообщаем что получилось
							alert(xmlhttp.responseText);
							// перезагружаем корзину
							getbasket();
						}
						if(warn == 2){
							// очистили корзинку, перегружаем
							window.location.reload(true);
						}
						if(warn == 3){
							// удалили продукт - удаляем ряд
							var oRow = document.getElementById('row_'+id);
							if(oRow){
								if(oRow.parentNode.rows.length > 3){
									oRow.parentNode.deleteRow(oRow.rowIndex);
								}else{
									window.location.reload(true);
								}
							}
						}
					} else {
						alert(errmsg);
					}
				}
			} else {
				alert("Ошибка доставки данных:\nНевозможно получить ответ от сервера.");
			};
		}
	}
	xmlhttp.send(null);
}

// добавление товара
function additem(id,noaction){
	saveaction('add',id,1,addError);
}

// добавление единицы продукта
function incproduct(id){
	var c = 1;
	var oStep = document.getElementById('step'+id);
	if(oStep && /\d+/.test(oStep.value)){ c = parseInt(oStep.value); }
	saveaction('add',id,0,incError,c);
}

// удаление единицы продукта
function decproduct(id){
	var c = 1;
	var cnt = 1;
	var oStep = document.getElementById('step'+id);
	if(oStep && /\d+/.test(oStep.value)){ c = parseInt(oStep.value); }
	var oCnt = document.getElementById('count_'+id);
	if(oCnt){ cnt = oCnt.innerHTML; }
	if(c > cnt){
		delproduct(id);
	}else{
		saveaction('del',id,0,deсError,c);
	}
}

// удаление всего продукта
function delproduct(id){
	if(confirm('Вы действительно хотите удалить этот товар?')){
		var cnt = 1;
		var oCnt = document.getElementById('count_'+id);
		if(oCnt){ cnt = oCnt.innerHTML; }
		saveaction('del',id,3,delError,cnt);
	}
}

// очистка корзины
function clearbasket(){
	if(confirm('Вы действительно хотите очистить корзину?')){
		saveaction('clr',1,2,clrError);
	}
}

// обновление корзины при изменении содержимого
function reloadbasket(id){
	var http_ready = 0;
	var xmlhttp = getHTTPObject();
	xmlhttp.open("GET", "/basket/get.p3?reload="+id, true);
	xmlhttp.setRequestHeader('If-Modified-Since', 'Thu, 22 Nov 2001 00:00:01 GMT');
	xmlhttp.onreadystatechange = function(){
		if(xmlhttp.readyState == 4) {
			if (xmlhttp.status == 200) {
				if (xmlhttp.responseText != ''){
					var oBasket = document.getElementById('basket');
					var oSum = document.getElementById('basketsumm');
					var oPrice = document.getElementById('price_'+id);
					var oCnt = document.getElementById('count_'+id);
					var oDec = document.getElementById('dec_'+id);
					//alert(xmlhttp.responseText);
					eval(xmlhttp.responseText);
				} else {
					alert("Не удалось обновить корзину");
				}
			} else {
				alert("Ошибка доставки данных:\nНевозможно получить ответ от сервера.");
			};
		}
	}
	xmlhttp.send(null);	
}

// действия с заказами
function setOrderAct(id,val){
	var actinp = document.getElementById('orderact_'+id);
	if(actinp){actinp.value = val;}
	var orderform = document.getElementById('order_'+id);
	if(orderform){orderform.submit();}
}
function copyToBasket(id){
	if(confirm('Перед помещением заказа в корзину она будет очищена. Продолжить?')){
		setOrderAct(id,'tobasket');
	}
}

