window.addEvent('domready', function(){
	$('shopcart_list').getElement('.close').addEvent('click', function(){
		hideShopcart();
	})
	shopcartLoadEvents()
});

function addItemToShopcart (item, units) {
	var request = new Request({
		url: base_path+'/ventas/add/'+item+'/'+units,
		onSuccess: function(response){
			updateShopcartList();
		}
	}).send();
}

function updateItemFromShopcart(item, units)
{
	var request = new Request({
		url: base_path+'ventas/update/'+item+'/'+units,
		onSuccess: function(response){
			updateShopcartList();
		}
	}).send();
}

function delItemFromShopcart (item, units) {
	var request = new Request({
		url: base_path+'ventas/del/'+item+'/'+units,
		onSuccess: function(response){
			updateShopcartList();
		}
	}).send();}

function updateShopcartList () {
	var holder = new Element('div').set('id', 'dataHolder').inject(document.body);
	var request = new Request.HTML({
		url: base_path+'ventas/refreshShopcart',
		onSuccess: function(tree, elements, data){
			holder.set('html', data);
			$('shopcart_list').getElement('div.updatable').set('html', holder.getElement('div[class=updatable]').get('html'));
			holder.dispose();
			shopcartLoadEvents();
			$('sidebarShopcartTotal').set('html', $('shopcart_list').getElement('span.price').get('html'));
		}
	}).send();
}

var autorefresh_shopcart = null;
function shopcartLoadEvents()
{
	var el = $('shopcart_list').getElement('.list');
	el.getElements('.item').each(function(el){
		el.getElement('input').addEvent('change', function(){
			if (autorefresh_shopcart) {
				clearTimeout(autorefresh_shopcart);
			}
			updateItemFromShopcart(el.get('id').replace(/item_/, ''), this.get('value'));
		}).addEvent('keyup', function(ev){
			if (autorefresh_shopcart) {
				clearTimeout(autorefresh_shopcart);
			}
			autorefresh_shopcart = setTimeout(function(){el.getElement('input').fireEvent('change')}, 800);
		});
		el.getElement('div.delete').addEvent('click', function(){
			delItemFromShopcart(el.get('id').replace(/item_/, ''), parseInt(el.getElement('input').get('value'))+1);
		});
	});
}

var overlay;
function showShopcart () {
	overlay = new Overlay({click: function(){hideShopcart();}});
	$('shopcart_list').setStyle('top', document.getElement('.Bshopcart').getPosition().y-236);
	$('shopcart_list').setStyle('left', document.getElement('.Bshopcart').getPosition().x+document.getElement('.Bshopcart').getSize().x);
	$('shopcart_list').fade('hide').show();
	$('shopcart_list').fade('in');
}

function hideShopcart () {
	overlay.close();
	$('shopcart_list').fade('out');
}
