var AJAX_MODULE_FILE = SITE_FOLDER+'inc/modules/orders/ajax_orders.php';
var curent_set = new Array();
var send_set = new Array();
var basket_id = 'div_totals'; // контейнер статусного блока корзины (id)
var total_id = 'total_ord_sum'; // контейнер значения суммы заказа корзины (id)
var cur_diliv_type=1; // текущий способ доставки
// Настраиваем время хранения текущей корзины
var sec = 0;
var min = 0;
var hour = 0;
var days = 0;
var months = 1;
var milisecs = 0;
	milisecs+= sec?1000*sec:0;
	milisecs+= min?60000*min:0;
	milisecs+= hour?3600000*hour:0;
	milisecs+= days?86400000*days:0;
	milisecs+= months?2635200000*months:0;
//-------------------------------------------------------------- GET_BASKET_LEN
function get_basket_len()
{
	var cnt = 0;
	for (var tmp in curent_set) cnt++;
	return cnt;
}
//-------------------------------------------------------------- CALC_BASKET
// Увеличить/уменьшить количество/сумму в корзине на сайте
//op = 'add' / 'del'
function calc_basket(price, op, diff)
{
	if (isNaN(price)) return false;
	var bsk = getObjectBW(basket_id); // Контейнер "Ваша корзина"
	if (bsk && (typeof(op)=='string'))
	{
		var vals = bsk.innerHTML.match(/(\d+)/g);
		if (vals.length!=2) return false;
		cnt=parseInt(vals[0]); // количество товаров в корзине
		sum=parseInt(vals[1]); // сумма товаров
		switch(op)
		{
			case 'chng':
			case 'plus':
				cnt+=diff;
				sum+=price;
				break;
			case 'minus':
				if ((cnt==0) || ((sum-price)<0)) return false;
				cnt--;
				sum-=price;
				break;
			default:
				return false;
		}
		bsk.innerHTML = "товаров: "+cnt+"<br/>на "+sum+" р.<br/>заказать";
		total_sum = sum;
		var tmp=getObjectBW(total_id);
		if (tmp) tmp.innerHTML = sum;
			
		return true;
	}
	return false;
}
//-------------------------------------------------------------- TREAT_ITEM
// Добавить/Удалить элемент в/из куки (корзины)
//op = 'add' / 'del'
function treat_item(id, price, op, inp_id)
{
	var inp_obj;
	var diff=1;
	if (!isset('SetCookie') || !isset('HTTP_SERVER_NAME')) return false;
	if (!navigator.cookieEnabled) {
		alert( "Для работы с корзиной на нашем сайте\nв Вашем браузере должны быть включены cookies!" );
		return 0;
	}
	id = id+'_';
	switch (op)
	{
		case 'plus':
			if( !isNaN(curent_set[id]) && (curent_set[id]<1000)) curent_set[id]++; else curent_set[id] = 1;
			break;
		case 'minus':
			if( !isNaN(curent_set[id]) && (curent_set[id]>0) ) curent_set[id]--; else return false;			
			break;
		case 'del':
			if(!isNaN(curent_set[id])) delete curent_set[id];
			break;
		case 'chng':
			inp_obj = getObjectBW(inp_id);
			if (!inp_obj || isNaN(curent_set[id])) return false;
			diff = parseInt(inp_obj.value) - parseInt(curent_set[id]); // разница			
			curent_set[id]+= diff;
			price = price*diff;
			break;
		default:
			return false;
	}
	// время хранения кукиса (заказа)
	var expdate = new Date();
	expdate.setTime (expdate.getTime() + milisecs);
	var tmp = serialize(curent_set);
	if (tmp && calc_basket(price,op,diff)) // коррекция значений в корзине на сайте
	{
		if (!SetCookie('curent_set', tmp, expdate, "/",HTTP_SERVER_NAME))
		{
			alert("Объем товаров в корзине достиг предела.\nДля продолжения оформите или сохраните текущий заказ.");
			return false;
		}
		if ((isset('orders_module') && orders_module==1) && cur_diliv_type==1 || cur_diliv_type==2) // Для курьерской и почтовой доставки нужен пересчет
			get_dilivery_cost(cur_diliv_type);
		if (!inp_obj) inp_obj = getObjectBW(inp_id);
		if (!inp_obj)
		{
			var inpitemnums = getElementsByClassName('inpcnt','input');
			for(var i=0; i<inpitemnums.length; i++)
				if(inpitemnums[i] && (inpitemnums[i].id=='inpcnt_'+parseInt(id)))
				{ inp_obj = inpitemnums[i]; break; }
		}
		if (inp_obj && !isNaN(curent_set[id])) inp_obj.value = curent_set[id];
		var some_items = getElementsByClassName('some_item_'+id,'a');
		if (some_items.length) for(i=0; i<some_items.length; i++) some_items[i].innerHTML = curent_set[id];
	}
		else
			return false;
	return true;
}
//-------------------------------------------------------------- ORDER_DEL
// Удалить ранее отложенный заказ по его id, btn - "кнопка"
function order_del(id, btn)
{
	var params = new Array();
	params['id']= id;
	DoAction('order_del',params,DeleteRow,btn);
}
function DeleteRow(ret, btn)
{
	if (ret['deleted'] && (ret['deleted']==true))
	{
		var tbl = btn.parentNode.parentNode.parentNode;
		var idx_row = btn.parentNode.parentNode.rowIndex;	// индекс удаляемой строки
		tbl.deleteRow(idx_row);	// уничтожаем основную строку
	}
}
//------------------------------------------------------------- EMPTYTABLE
// Убирает ВСЕ строки из таблицы tbl кроме заголовков (<th>)
// (пока не используется)
function emptyTable(tbl)
{
	while (tbl.rows.length>1) tbl.deleteRow(1);
}
//-------------------------------------------------------------- GET_DILIVERY_COST
// Расчет стоимости доставки и вывод значения в интерфейсе сайта
function get_dilivery_cost(type)
{
	var params = new Array();
	params['type']= type;
	DoAction('get_dilivery_cost',params,AddDilivCost, type);
}
function AddDilivCost(ret, puser)
{
	if (ret['cost'])
	{
		var cost_diliv_sum = parseInt(ret['cost']);
		var tmp=getObjectBW(total_id);
		if (tmp) tmp.innerHTML = total_sum + cost_diliv_sum;
		var tmp=getObjectBW('diliv_cost_incl');
		if (tmp) 
		{
			if (cost_diliv_sum>0)
				tmp.innerHTML = ' (с учетом стоимости доставки)';
			else
				tmp.innerHTML = ' (не включая стоимость доставки)';
		}
	}
}
//-------------------------------------------------------------- SET_TOTAL_SUM
// Отображение хранимого значения общей стоимости товаров в корзине без учета стоимости доставки
function set_total_sum()
{
	var tmp=getObjectBW(total_id);
	if (tmp) tmp.innerHTML = total_sum;
	var tmp=getObjectBW('diliv_cost_incl');
	if (tmp) tmp.innerHTML = '';
}
//-------------------------------------------------------------- GET_CURENT_SET
// Поместить значения куки "корзина" в специальный JS массив для обработки скриптом
function get_curent_set(ret,puser)
{
	if (ret['curent_set'] && typeof(ret['curent_set'])=='string')
		curent_set = unserialize(ret['curent_set']);
}
//-------------------------------------------------------------- ORDER_SAVE
// Предварительная проверка условий сохранения заказа и сохранение в базе данных.
function chk_order_save() {
	
	if (get_basket_len() && confirm("Подтвердите сохранение заказа.\nБудут сохранены ВСЕ товары из корзины."))
	{
		var params = new Array();
		DoAction('chk_order_save',params,order_save,'');
	}
	return false;
}
function order_save(ret,puser)
{
	if (ret['save']==true)
	{
		var ord_name = prompt('Вы можете ввести название этого заказа:','');
		var params = new Array();
		params['ord_name'] = ord_name;
		DoAction('do_order_save',params,'','');
	}
	return false;
}
//-------------------------------------------------------------- ORDER_CLEAR
// Убрать всю информацию из корзины заказа и изменить внешность страницы сайта соответственно
function order_clear()
{
	if (get_basket_len())
	{
		if (!confirm('Подтвердите удаление информации из корзины.')) return false;
		var params = new Array();
		DoAction('order_clear',params,post_order_clear,'');
	}
		else alert('Корзина пуста.');
	return false;
}
function post_order_clear(ret,puser)
{
	if (ret['mess']) document.location.reload();
/*	
	{
		var tmp;
		DoAction('get_curent_set','',get_curent_set,'');
		var bsk = getObjectBW(basket_id); // Контейнер "Ваша корзина"
		if (bsk) bsk.innerHTML = "товаров: 0<br/>на 0 р.";
		total_sum = 0;
		tmp = getObjectBW('cell_tbl_delayed'); // Таблица - Товары в корзине
		if (tmp) tmp.innerHTML = '';
		tmp = getObjectBW('cell_basket_btns'); // Таблица - кнопки
		if (tmp) tmp.innerHTML = '';
		tmp=getObjectBW('cell_tbl_dil'); // Таблица - выбор способов доставки
		if (tmp) tmp.innerHTML = "<span style='color:#FFFFFF;'>Корзина пуста. Выбор товаров осуществляется через каталог.</span>";
		
		alert(ret['mess']);
	}
*/
}
//-------------------------------------------------------------- ORDER_SEND
// Предварительная проверка условий отправки заказа
function chk_order_send()
{
	if (get_basket_len()==0)
	{
		alert('Корзина пуста');
		return false;
	}
	if (items_num_chk())
	{
		var params = new Array();
		DoAction('chk_order_send',params,order_send,'');
	}
	return false;
}
function order_send(ret,puser)
{
	if ((ret['save']==true) && confirm("Подтвердите отправку заказа.\nУчитываются товары, отмеченные галочкой с положительным значением количества."))
	{
		var params = new Array();
		params['ids_ord'] = send_set;
		params['post_type'] = cur_diliv_type;
		DoAction('do_order_send',params,'','');
	}
	return false;
}
//-------------------------------------------------------------- ITEMS_NUM_CHK
// Поиск и сигнализация ситуации: товар выбран, но его количество не положительное (при отправке заказа)
function items_num_chk()
{
	var checkers = getElementsByClassName('chkinclitems','input');
	var inpitemnums = getElementsByClassName('inpcnt','input');
	send_set = new Array();
	for(var i=0; i<checkers.length; i++)
		if(checkers[i] && inpitemnums[i])
		{
			if (!checkers[i].checked) continue;
			if (inpitemnums[i].value>0)
				send_set[i] = parseInt(checkers[i].id);
			else
			{
				alert('В заказе имеются товары с неверным значением количества.');
				return false;
			}
		}
			else 
		{
			alert('Ошибка проверки количества выбранных товаров.');
			return false;
		}
	return true;
}
//--------------------------------------------------------------
function openListSaved()
{
	openwindow("inc/modules/orders/saved_orders.php",800,600,DOPSINFO);
	return false;
}
//--------------------------------------------------------------
DoAction('get_curent_set','',get_curent_set,'');
