var Basket;

function Basket(){

	var _this = this;

	_this.init = function(){
		$('div#koszyk div.basket_position div.plusMinus div.plus').bind('click', function(){
			Basket.updateBasket(this);
		});
		$('div#koszyk div.basket_position div.plusMinus div.minus').bind('click', function(){
			Basket.updateBasket(this);
		});
		$('div#koszyk div.basket_position input').bind('blur', function(){
			Basket.filterBasketInput(this);
		});

	}

	_this.sendUpdate = function(){
		var action = 'UpdateBasket';
		var makeorder = 0;
		var ba_amount_i = new Array();
		var data = '';

		$('div.basket_position').each(function() {
			var id = this.id.match(/baid([0-9]+)/i);
			id = id[1];
			var input = $('div#baid'+id+' input');
			ba_amount_i[id] = input[0].value;
		});

		for(i in ba_amount_i)
		{
			if(data.length > 1)
			{
				data += '&'+i+'='+ba_amount_i[i];
			}
			else
			{
				data += i+'='+ba_amount_i[i];
			}
		}

		Basket.unregister();
		$.post('/basket_info.php', {'makeorder':makeorder, 'action':action, 'small': 'true', 'ba_amount_i':data}, function(incoming){
			$('div#basketContent').html(incoming);
			Basket.init();
		});
		return true;
	};

	_this.unregister = function(){
		$('div.plus').unbind();
		$('div.minus').unbind();
		$('input').unbind();
	}

	_this.updateBasket = function(elem){
		var val = $(elem).parent().next();
		var currentAmount = parseInt(val[0].value);

		if(isNaN(currentAmount))
		    currentAmount = 0;
		if(elem.className == 'minus')
		{
			if(currentAmount > 0)
				val[0].value = currentAmount - 1;
		}
		else
		{
        		var val_all = parseInt($(elem).parent().next().next().html());
			if(isNaN(val_all))
				val_all = 0;

			if (val_all > currentAmount)
				val[0].value = currentAmount + 1;
			else
			     alert('Brak wystarczajacej ilosci sztuk w magazynie');
		}
		Basket.sendUpdate();
	}

	_this.filterBasketInput = function(elem){

		var val_all = $(elem).next().html();
		var val = $(elem).parent().find('input').val();

		if (val > val_all)
		{
			alert('Brak wystarczajacej ilosci sztuk w magazynie');
        		$(elem).parent().find('input').val(val_all);
		}
		else
			Basket.sendUpdate();
	}

}

$(document).ready(function(){
	Basket = new Basket();
	Basket.init();

	$(window).unload(function(){
		Basket.unregister();
	});
});
