jQuery(document).ready(function($){

$('div.product-box form').each(function(){
	var el = $(this);

	el.submit(function(e,j,k){
		$(this).find('a.add-to-cart').trigger('click',e);
		return false;
	}.bind(el));
	
	var cart = $('table.cart:first');
	var number_format = function( number, _decimals, dec_point, thousands_sep ) {
		_decimals = parseInt( _decimals||0 );
		var invert = (_decimals <= 0);
		var decimals = "1"+"0".repeat(_decimals);
		if( invert ) decimals = 1/decimals;
		number = new String( Math.round( number*decimals )/decimals );
		
		dec_point = dec_point || ',';
		thousands_sep = thousands_sep || ' ';
		
		var r = "", q, dec=0;
		while( q = number.match(/[0-9]{1,3}$|\.[0-9]+$/) ) {
			if( !q || !q[0].length ) break;
			var p = new String( q[0] );
			if( p.substr(0,1) == '.' ) { dec = p.substr(1); } else { r = p+(r.length?thousands_sep:"")+r; }
			number = number.replace( new RegExp( p.escapeRegExp()+'$' ), '' );
		}
		r = r+(_decimals>0?(dec_point+("0".repeat(_decimals)+parseInt(dec)).substr(-_decimals,_decimals)):'');
		
		return r;
	}
	
	var recount = function( ) {
		if( !cart ) return;
		var _cart = { sum:0, qty:0, currency:'руб' };
		cart.find('tr[id]').each( function(i){
			var tr = $(this);
			var _qty = tr.find('.quantity:first input[name=qty]').val();
			var _fprice = tr.find('.price:first').text();
			var _price = _fprice.replace(/[^0-9\-\.]/g,'');
			var _currency = _fprice.replace(/[0-9\-\.\s]/g,'');
			_cart.qty += parseInt(_qty);
			_cart.sum += _qty * _price;
			_cart.currency = _currency;
			tr.find('.sum:first').html("<nowrap><big>"+' '+number_format( _qty * _price, 0, ',', ' ' )+'</big></nowrap> '+_currency );
		});
		$('#cart_quantity').html('<b>'+_cart.qty+'</b>');
		$('#cart_sum').html("<nowrap><big>"+number_format( _cart.sum, 0, ',', ' ' )+'</big></nowrap> '+_cart.currency);
	}
	
	el.find('a.add-to-cart').bind('click',function(e){
		e.stopPropagation();
		e.preventDefault();
		
		// tests
		var _qty = parseInt( this.find('input[name=qty]:first').val() );
		if( !!_qty && _qty < 1 ) return alert( 'Введите количество товара.' );
		
		// 1sec sleep between requests
		var wait = this.retrieve( 'wait' ); if( wait + 1000 > $time() ) return;
		this.store( 'wait',$time() );
		
		// callback
		var t = function(data) {
			if( !data || !data.result )
				return alert( 'Произошла ошибка.' );
			if( data.result.error )
				return alert( 'Произошла ошибка.\n'+data.result.error );
			if( data.result.message )
				return alert( data.result.message );

			if( !cart.length )
				if( data.result.confirm && data.result.location )
					if( confirm( data.result.confirm ) )
						return window.location = data.result.location;

			if( data.result.cart && $('#right-cart').length )
				$('#right-cart').html( data.result.cart );

			recount( );
		};

		// send form
		$.post($(this).attr('action'), $(this).serialize(), t);

	}.bind(el));


	if(el.find('a.del-from-cart').length) {

		el.find('a.del-from-cart').bind('click',function(e){

			e.stopPropagation( );
			e.preventDefault( );

			// 1sec sleep between requests
			var wait = this.retrieve( 'wait' ); if( wait + 1000 > $time() ) return;
			this.store( 'wait', $time() );

			// callback
			var s = function(data) {
				if( !data || !data.result )
					return alert( 'Произошла ошибка.' );
				if( data.result.error )
					return alert( 'Произошла ошибка.\n'+data.result.error );
				if( data.result.message )
					return alert( data.result.message );

				if( !cart.length )
					if( data.result.confirm && data.result.location )
						if( confirm( data.result.confirm ) )
							return window.location = data.result.location;

				if( data.result.cart && $('#right-cart').length ) {
					$('#right-cart').html( data.result.cart );
					el.parent().parent().parent().destroy();
					if(cart.find('tr').length < 3 )
						window.location = '/';
				}

				recount( );
			};
			var _id = el.find('input[name=id]').val();

			//(new Request.JSON({'url':'/ajax/goods/delitem/','async':false,'onSuccess':s})).post({'id':_id});
			$.post('/ajax/goods/delitem/', {'id':_id}, s);
			//console.debug('send',{'id':_id});
		}.bind(el));
	}
});

});
