var cartArr = new Array();

var flgOrder = false;

function CartItem(id, price, name, href, imgsrc)
{
	this.id = id;
	this.price = price;
	this.name = name;
	this.href = href;
	this.imgsrc = imgsrc;
	this.quant = 1;
}

function cartUpdate()
{
	var html = '';
	var total = 0;
	var i;
	for(i=0; i<cartArr.length; i++) {
		var item = cartArr[i];

		if(i == 0) {
			var src = item.imgsrc;
			html += '<center>';
			html += '<a href="' +item.href+ '"><img src="' +src+ '"/></a><br>';
			html += '</center>';
		}

		html += '<center><a href="' + item.href + '">' + item.name + '</a><center>';

		html += '<center class="cart_nitems">';
		html += + item.quant + ' шт. &nbsp;';
		html += '<a href="javascript:cartDel(' + item.id + ')"><img src="/images/cart_minus.png"/></a>';
		html += '&nbsp;';
		html += '<a href="javascript:cartAdd(' + item.id + ',0,0,0)"><img src="/images/cart_plus.png"/></a>';
		html += '</center>';

		html += '<div class="cart_price">' + item.price*item.quant + ' руб.' + '</div>';


		html += '<br>';
		total += + item.price * item.quant;
	}

	document.getElementById('cartContent').innerHTML = html;
	document.getElementById('cartTotal').innerHTML = total + ' руб.';

	var dis = 'none';
	var vis = 'hidden';
	if(cartArr.length > 0) {dis = 'block'; vis = 'visible';}
	document.getElementById('cart_wrapper').style.display = dis;
	document.getElementById('cart_wrapper').style.visibility = vis;
}

function orderUpdate()
{
	var html = '';
	var len = cartArr.length;

	if(len && flgOrder) {
		html += '<table align="center" width="100%"><tr align="left">';
		html += '<th>Наименование</th><th>Цена</th><th>Количество</th><th>Стоимость</th>';
		html += '</tr>';
		var i;
		var total = 0;
		var totalQuant = 0;
		for(i=0; i<len; i++) {
			var item = cartArr[i];
			var id = item.id;
			var name = item.name;
			var price = item.price;
			var quant = item.quant;
			var href = item.href;

			html += '<tr align="left">';
			html += '<td>';
			html += '<a href="' + href + '">' + name;
			html += '</a></td>';
			html += '<td>' + price + ' руб.</td>';

			html += '<td>' + quant + ' шт. &nbsp;';
			html += '<a href="javascript:cartDel(' + id + ')"><img src="/images/cart_minus.png"/></a>';
			html += '&nbsp;';
			html += '<a href="javascript:cartAdd(' + id + ',0,0,0)"><img src="/images/cart_plus.png"/></a>';
			html += '</td>';

			html += '<td>' + quant*price + ' руб.</td>';
			html += '</tr>';

			totalQuant += + quant;
			total += + quant*price;
		}
		html += '<tr align="left"><td colspan="4">&nbsp;</td></tr>';

		html += '<tr align="left"><th>Итого:</th><th></th>';
		html += '<th>' + totalQuant + ' шт.</th>';
		html += '<th class="order_price">' + total + ' руб.</th></tr>';
		html += '</table>';

	}

	if(flgOrder) document.getElementById('orderTable').innerHTML = html;
}

function cartAjaxSend()
{
	var xmlhttp = null;
	if(window.XMLHttpRequest) {
		xmlhttp = new XMLHttpRequest();
	} else if (window.ActiveXObject) {
		xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
	} else {
		alert('Используемый Вами браузер не поддерживается');
	}

	var s = JSONstring.make(cartArr);

	var url = '/cart.php?';
	url += 'toserver=true&';
	url += 'cartjson=' + encodeURIComponent(s);

	xmlhttp.open("GET", url, true);
	xmlhttp.send(null);
}

function cartAjaxReceive()
{
	var xmlhttp = null;
	if(window.XMLHttpRequest) {
		xmlhttp = new XMLHttpRequest();
	} else if (window.ActiveXObject) {
		xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
	} else {
		alert('Используемый Вами браузер не поддерживается');
	}

	var url = '/cart.php?';
	url += 'toserver=false';

	xmlhttp.open("GET", url, true);
	xmlhttp.send(null);

	xmlhttp.onreadystatechange = function() {
		if(xmlhttp.readyState == 4) {
			var s = xmlhttp.responseText;
			cartArr = eval('(' + s + ')');
			cartUpdate();
			orderUpdate();
		}
	}
}

function cartItemIndexById(id)
{
	var ind = -1;
	for(i=0; i<cartArr.length; i++) {
		if(cartArr[i].id == id) {
			ind = i;
			break;
		}
	}

	return ind;
}

function cartAdd(id, price, name, imgsrc)
{
	var ind = cartItemIndexById(id);
	var item = cartArr[ind];

	if(item) {
		item.quant ++;
	} else {
		var href = '/good/' + id;
		item = new CartItem(id, price, name, href, imgsrc);
		cartArr.push(item);
	}

	cartAjaxSend();
	cartUpdate();
	orderUpdate();
}

function cartDel(id)
{
	var ind = cartItemIndexById(id);
	if(ind >= 0) {
		var item = cartArr[ind];
		if(item.quant <= 1) {
			cartArr.splice(ind, 1);
		} else {
			item.quant --;
		}

		cartAjaxSend();
		cartUpdate();
		orderUpdate();
	}
}

function orderValidateForm()
{
	var ret = true;
	var msg = 'Нужно указать:';

	if(document.order.surname.value == '') {
		msg += '\nФ. И. О.';
		ret = false;
	}
	if(document.order.phone.value == '') {
		msg += '\nТелефон';
		ret = false;
	}

	if(!ret) alert(msg);

	return ret;
}

function order_submit()
{
	if(!orderValidateForm()) return;
	flgOrder = false;

	url = '/order_submit.php?';
	url += 'surname=' + encodeURI(document.order.surname.value);
	url += '&phone=' + encodeURI(document.order.phone.value);
	url += '&email=' + encodeURI(document.order.email.value);
	url += '&address=' + encodeURI(document.order.address.value);
	url += '&comment=' + encodeURI(document.order.comment.value);

	document.getElementById('orderPage').innerHTML = 'Заказ отправляется...';

	var xmlhttp = null;
	if(window.XMLHttpRequest) {
		xmlhttp = new XMLHttpRequest();
	} else if (window.ActiveXObject) {
		xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
	} else {
		alert('Используемый Вами браузер не поддерживается');
	}

	xmlhttp.open("GET", url, true);
	xmlhttp.send(null);

	xmlhttp.onreadystatechange = function() {
		if(xmlhttp.readyState == 4) {
			var s = xmlhttp.responseText;

			var op = document.getElementById('orderPage');
			var opd = document.getElementById('orderPageDone');

			op.innerHTML = '';
			op.style.visibility = 'hidden';
			opd.style.visibility = 'visible';
			op.style.display = 'none';
			opd.style.display = 'block';

			cartArr = new Array();
			cartUpdate();

			scroll(0,0);
		}
	}

}

onloadFunctions.push(cartAjaxReceive);

