function calculateSum() {
	var sum = 0;
	var i = 0;
	$('.cost-val').each( function() {
		sum += parseInt($(this).text().replace(/\s/g, ''));
		i++;
	});
	if (i == 0) {
		$('#basket-container').remove();
		$('#Basket div.fieldset').removeClass('hidden');
		return;
	}
	$('#sum-val').text(formatDigit(sum));
}

function calculateRow(tr) {
	//$(tr).find('.cost-val').text(formatDigit($(tr).find('.pr-val').text().replace(/\s/g, '') * $(tr).find('.count-val').val()));
	$(tr).find('.cost-val').text(formatDigit(parseInt($(tr).find('.pr-val').val()) * $(tr).find('.count-val').val()));
	calculateSum();
}

// Разбивает число на тысячные разряды, val - строка, содержащая число, может уже содержать пробелы
function formatDigit(val) {
	val = val.toString();
	var minus = /-/.test(val) ? '-' : ''; // если есть минус, запоминаем его
	val = val.replace(/[\s-]/g, ''); // убираем все лишнее: пробелы и минус если они есть
	if(val.length > 3) { 
		var c = parseInt((val.length-1)/3); // сколько будет разбиений?
		var arr = val.split(''); // разбиваем строку на массив
		for(var i = 1; i < c+1; i++)
			arr.splice(-3*i-i+1 , 0, ' '); // вставляем пробелы
		val = arr.join(''); // собираем обратно в строку
	}
	return minus + val; // возвращаем результат с минусом, если он есть
}

// проверяет, что нажато на клаве. принимает объект, возвращаемый в callback-функцию jquery события keypress 
// и регулярное выражение, с которым надо сравнить. пропускает также спешл-кеи: left arrow, right arrow, home, end, delete, backspace
function testKey(e, re){
	if(jQuery.browser.msie) // для осла есть только keyCode
		return re.test(String.fromCharCode(e.keyCode))
	else if(jQuery.browser.mozilla) // для лисы спец-клавиши идут в keyCode, а символьные в charCode
		return (e.keyCode) ? true : re.test(String.fromCharCode(e.charCode))
	else // для остальных прописываем принудительно нужные нам кейкоды
		return (e.keyCode == 46 || e.keyCode == 8 || e.keyCode == 37 || e.keyCode == 39 || e.keyCode == 35 || e.keyCode == 36 || e.keyCode == 9) ? true : re.test(String.fromCharCode(e.keyCode));
}

$(document).ready( function() { 
	
	$('.count-btn-up').click( function() {
		if(parseInt($(this).parent().siblings('input').val()) < 99)
			$(this).parent().siblings('input').val(parseInt($(this).parent().siblings('input').val()) + 1);
		calculateRow($(this).parents('tr'));
		var $t = $( this ),
		sUrlSplit = $t.attr('id').split('-'),
		sURL = '/bitrix/templates/disney/ajax/updbasket.php?action=updbasket&id=' + sUrlSplit[1] +'&count=' +$(this).parent().siblings('input').val();
//		alert($(this).parent().siblings('input').val());
		$.get(sURL, function(){
//			alert('Load was performed.');
		});
		return false;
		
	});
	
	$('.count-btn-down').click( function() {
		if(parseInt($(this).parent().siblings('input').val()) > 1)
			$(this).parent().siblings('input').val(parseInt($(this).parent().siblings('input').val()) - 1);
		calculateRow($(this).parents('tr'));
		var $t = $( this ),
		sUrlSplit = $t.attr('id').split('-'),
		sURL = '/bitrix/templates/disney/ajax/updbasket.php?action=updbasket&id=' + sUrlSplit[1] +'&count=' +$(this).parent().siblings('input').val();
//		alert($(this).parent().siblings('input').val());
		$.get(sURL, function(){
//			alert('Load was performed.');
		});
		return false;
	});
	
	$('input.count-val').keypress( function(e) {
		return testKey(e, /[0-9]/);
	});
	
	$('input.count-val').keyup( function() {
		calculateRow($(this).parents('tr'));
	});
	
	$('input.count-val').change( function() {
		if($(this).val() == '' || parseInt($(this).val()) == 0) $(this).val('1');
		calculateRow($(this).parents('tr'));
	});
	
	$('.korzina tr').each( function() {
		calculateRow(this);
	});
	
	$('.del-btn').click( function() {
		$(this).parents('tr').remove();
	/*	$(this).value = 'Y';
		//$('#Basket').submit();
		var $t = $( this ),
		sUrlSplit = $t.attr('href').split('?'),
		sURL = '/bitrix/templates/disney/ajax/rem4basket.php' + sUrlSplit[1];
		$.get(sUrl, function(data){
			alert('Load was performed.');
		});*/
		calculateSum();
	});
	
	$('.del-link').click( function() {
		$(this).parents('tr').remove();
		//$(this).value = 'Y';
		//$('#Basket').submit();
		var $t = $( this ),
		sUrlSplit = $t.attr('href').split('?'),
		iid=sUrlSplit[1].split('=');
		sURL = '/bitrix/templates/disney/ajax/rem4basket.php?action=rem4basket&id=' + iid[1];
		$.get(sURL, function(){
		//	alert();
		});
		calculateSum();
	
		var LANG = {
			basket: ['Ваша корзина', 'В вашей корзине'],
			items: ['пока пуста', '', 'а', 'ов']
		}
		var nItems = parseInt($('div.t-basket i').text()) - 1;
		var sBasketLink, sBasketCount;
		if( nItems > 0 ) {
			sBasketLink = LANG.basket[1];

			if( nItems < 2 ) {
				sBasketCount = LANG.items[1];
			} else if( nItems < 5) {
				sBasketCount = LANG.items[2];
			} else {
				sBasketCount = LANG.items[3];
			}

			sBasketCount = (nItems) + ' товар' + sBasketCount;
		}
		else{
			$('div.t-basket a').removeClass('in');
			sBasketLink = LANG.basket[0],
			sBasketCount = LANG.items[0];
		}
		$('div.t-basket a').text(sBasketLink);
		$('div.t-basket i').text(sBasketCount);
		
		return false;
	});
	
});
