var orderDown = false;
var dragged = false;
var hereOver = false;

var mShow = function(el)
{
	el.removeClass('invisible');
}

var mHide = function(el)
{
	if(el.length > 0 && !el.attr('class').match(/invisible/))
	{
		el.addClass('invisible');
	}
}

var addToCart = function(id)
{
	xk.ajax
	({
		url: "?action=setparam",
		cache: false,
		data: 
		({
			"pid": id,
			"qty": 1
		}),
		type: "POST",
		dataType: "json",
		success: function(data)
		{
			if(data.status == 'success')
			{
				xk.ajax
				({
					url: "?action=getitems",
					cache: false,
					type: "POST",
					dataType: "text",
					success: function(text)
					{
						xk('#list_order .hidden').html(text);
						alert("Добавлено в корзину");
					}
				});
			}
			else if(data.status == 'no change')
			{
				alert("Уже добавлено в корзину");
			}
		}
	});
	return false;
}

var timer = false;

var changeSum = function()
{
	var items = xk('#list_content .item');
	var sum = 0;
	for(var i = 0, l = items.length; i < l; i++)
	{
		sum += Number(xk(items[i]).find('.cost p').text());
	}
	
	xk('#show-sum span').text(sum);

	if(sum > 0 && sum < 597)
	{
		mShow(xk('#last-sum'));
	}
	else
	{
		mHide(xk('#last-sum'));
	}
	
	if(sum < 597)
	{
		mHide(xk('#order-start'));
		xk('#last-sum span').text(597 - sum);
	}
	else
	{
		mShow(xk('#order-start'));
	}
}

var changeQty = function(el)
{
	var operation = xk(el).attr('class'),
		qtyElement = xk(el).prevAll('p'),
		qty = Number(qtyElement.text()) == NaN ? 1: Number(qtyElement.text()),
		changes = false;
		
	if(operation == 'minus')
	{
		if(qty > 1)
		{
			qtyElement.text(--qty);
			
			changes = true;
		}
	}
	else
	{
		if(qty < 30)
		{
			qtyElement.text(++qty);
			changes = true;
		}
	}
	
	var item = qtyElement.parents('.item');
	item.find('.cost p').text(Number(item.find('.price').text()) * qty);
	changeSum();
	
	if(changes)
	{
		if(timer != false)
		{
			clearTimeout(timer);
		}
		
		timer = setTimeout
		(
			function()
			{
				var items = xk('#list_content .item');
				var t = [];
				for(var i = 0; i < items.length; i++)
				{
					var id = xk(items[i]).find('.id').text();
					var qty = xk(items[i]).find('.quantity').text();
					t.push(id + '-' + qty);
				}
				var sendText = t.join(':');
				
				xk.ajax
				({
					url: "?action=cart.changeqty",
					cache: false,
					type: "POST",
					data: 
					({
						"params": sendText
					}),
					dataType: "text",
					success: function(data)
					{

					}
				});
				timer = false;
			}, 
			2000
		);
		
	}
	
	return false;
}

var refreshCart = function()
{
	xk.ajax
	({
		url: "?action=cart.getcartitems",
		cache: false,
		type: "POST",
		dataType: "text",
		success: function(data)
		{
			var hid = xk('#list_content .hidden');
			hid.html(data);
			applySettings();
		}
	});
	return false;
}

var applySettings = function()
{
	var hid = xk('#list_content .hidden');
	var items = xk('#list_content .item');
	
	var min = -27 * (items.length - 4);
	min = min > 0 ? 0: min;
	if(hid[0].offsetTop < min)
	{
		hid.css('top', min + 'px');
	}
	
	if(items.length > -1 && items.length < 4)
	{
		xk('#list_content').css('height', (27 * items.length) + 'px');
	}
	else
	{
		xk('#list_content').css('height', '108px');
	}
	
	if(items.length > 0)
	{
		mHide(xk('#order-area .status'));
		mShow(xk('.input_order'));
		mShow(xk('#show-sum'));
		mShow(xk('#clean-cart'));
		
	}
	else
	{
		mShow(xk('#order-area .status'));
		mHide(xk('.input_order'));
		mHide(xk('#show-sum'));
		mHide(xk('#clean-cart'));
	}
	
	if(items.length > 4)
	{
		mShow(xk('#list_order .up a'));
		mShow(xk('#list_order .down a'));
	}
	else
	{
		mHide(xk('#list_order .up a'));
		mHide(xk('#list_order .down a'));
	}
	
	xk('#show-sum span').text(xk('#items-sum').text());
	changeSum();
}
	
var removeItem = function(el)
{
	var pid = xk(el).parent().prevAll('i').text();
	xk.ajax
	({
		url: "?action=cart.removeitem",
		cache: false,
		type: "POST",
		data: 
		({
			"pid": pid 
		}),
		dataType: "json",
		success: function(data)
		{
			if(data.status == 'success')
			{
				refreshCart();
			}
		}
	});
	
	return false;
}

var arrowDown = function()
{
	var items = xk('#list_content .item');
	
	var min = -27 * (items.length - 4);
	var hid = xk('#list_content .hidden');
	var top = hid[0].offsetTop;
	if(top > min)
	{
		hid.css('top', (top - 27) + 'px');
	}
	
	return false;
}

var arrowUp = function()
{
	var items = xk('#list_content .item');
	
	var max = 0;
	var hid = xk('#list_content .hidden');
	var top = hid[0].offsetTop;
	if(top < max)
	{
		hid.css('top', (top + 27) + 'px');
	}
	
	return false;
}

var addItem = function(pid)
{
	xk.ajax
	({
		url: "?action=cart.additem",
		cache: false,
		type: "POST",
		data: 
		({
			"pid": pid 
		}),
		dataType: "json",
		success: function(data)
		{
			if(data.status == 'success')
			{
				refreshCart();
			}
			else if(data.status == "no change")
			{
				alert("Уже добавлено");
			}
		}
	});
	
	return false;
}

var addLanch = function()
{
	var orders = xk('.order');
	var data = [];
	for(var i = 0, l = orders.length; i < l; i++)
	{
		inputs = xk(orders[i]).find('input');
		for(var j = 0, m = inputs.length; j < m; j++)
		{
			if(inputs[j].checked == true)
			{
				data.push(xk(inputs[j]).attr("value"));
			}
		}
	}
	var values = data.join(',');
	xk.ajax
	({
		url: "?action=cart.additemlanch",
		cache: false,
		type: "POST",
		data: 
		({
			"values": values 
		}),
		dataType: "json",
		success: function(data)
		{
			if(data.status == 'success')
			{
				refreshCart();
			}
			else if(data.status == "no change")
			{
				alert("Уже добавлено");
			}
		}
	});
	
	return false;
}

var cleanCart = function()
{
	xk.ajax
	({
		url: "?action=cart.deleteall",
		cache: false,
		type: "POST",
		dataType: "json",
		success: function(data)
		{
			
			xk('#list_content .item').remove();
			applySettings();
		}
	});
	
	return false;
}

var startOrder = function()
{
	if(Number(xk('#show-sum span').text()) > 597)
	{
		xk('.order_form').css('display', 'block');
		orderDown = true;
		xk('#fixed').css('position', 'absolute');
		xk('#fixed').css('top', '425px');
	}
	return true;
}

var sendForm = function()
{
	var error = false;
	if(xk('#order_form input[name=name]').val() == '')
	{
		error = true;
	}
	
	if(xk('#order_form input[name=phone]').val() == '')
	{
		error = true;
	}
	
	if(xk('#order_form input[name=street]').val() == '')
	{
		error = true;
	}
	
	if(xk('#order_form input[name=house]').val() == '')
	{
		error = true;
	}
	
	if(xk('#order_form input[name=room]').val() == '')
	{
		error = true;
	}
	
	if(xk('#order_form input[name=entrance]').val() == '')
	{
		error = true;
	}
	
	if(xk('#order_form input[name=stage]').val() == '')
	{
		error = true;
	}
	
	if(error)
	{
		alert('Некоторые из обязательных полей не были заполнены');
	}
	else
	{
		xk('#order_form form').submit();
	}
	
	return false;
}

var showParams = function(obj)
{	
	var t = [];
	for(var i in obj)
	{
		if(!i.match(/Storage/))
		{
			t.push(i + ': ' + (typeof(obj[i]) == 'function' ? 'function': obj[i]) );
		}
	}
	alert(t.join(String.fromCharCode(10)));
}

xk(window).scroll
(
	function(aEvent)
	{
		var y = aEvent.screenY ? document.documentElement.scrollTop: this.scrollY;
		if(y > 425 && !orderDown)
		{
			xk('#fixed').css('position', 'fixed');
			xk('#fixed').css('top', '0px');
		}
		else
		{
			xk('#fixed').css('position', 'absolute');
			xk('#fixed').css('top', '425px');
		}
	}
);

xk(document).ready
(
	function()
	{
		xk(document).mousemove
		(
			function(aEvent)
			{
				if(dragged)
				{
					var _drag = xk('#draggable');

					var x = (aEvent.pageX + 10) + 'px';
					var y = (aEvent.pageY + 10) + 'px';
					
					_drag.css('top', y);
					_drag.css('left', x);
					
				}
			}
		);
		
		xk(document).mouseup
		(
			function()
			{
				xk('#draggable').css('display', 'none');
				
				if(hereOver && dragged)
				{
					var id = dragged;
					hereOver = false;

					addItem(id);
				}
				dragged = false;
				return false;
			}
		);
	}
);

xk('#here').mouseover
(
	function()
	{
		hereOver = true;
	}
);

xk('#here').mouseout
(
	function()
	{
		hereOver = false;
	}
);

xk('.items_pic_main').mousedown
(
	function(aEvent)
	{
		var _drag = xk('#draggable');
		
		var y = aEvent.pageY;
		var x = aEvent.pageX;

		dragged = xk(this).attr('alt');

		var src = xk(this).attr('src');
		_drag.css('display', 'block');
		_drag.css('top', (y + 10) + 'px');
		_drag.css('left', (x + 10) + 'px');

		_drag.children('img').attr('src', src);
		
		
		return false;
	}
)

