// klasa CSS do podświetlania produktów będących w koszyku
var gHighlightClass = 'change';
// info po pomyślnym zaktualizowaniu koszyka
var gSuccessInfo = objGetText.gettext('Koszyk został pomyślnie zaktualizowany');
// info o braku zmian w koszyku
var gNoChangeInfo = objGetText.gettext("Bez zmian");


$(document).ready(function(){
	//$('body').append('<div class="wait">Momencik...</div>'); // - zostało dodane na sztywno w layoucie
	
	// identyfikator formularza, na którym rzeźbimy
	var vFormId = 'addToCartForm';
	// URL, na który wysyłamy rządanie modyfikacji koszyka
	var vUrl = 'default/cart/update/async/true';
	
	// grupowe dodawanie do koszyka
	$('#' + vFormId).submit(function(){
	
		var vTempUrl = vUrl;
		
		// zbieramy wszystkie inputy do URL-s
		var vInputs = $(this).find(':hidden[id^=amount_hid]').get();
		// stare wartości (przed zmianą)
		var vOldInputs = $(this).find(':hidden[id^=old_amount_hid]').get();
		
		// budujemy URL
		for (var k=0;k<vInputs.length;k++)
		{
			if (vInputs[k].value != vOldInputs[k].value)
			{
				var vCode = vInputs[k].name.substr(6);
				// weryfikujemy wartość
				verify(vCode);
				vTempUrl += '/' + vInputs[k].name + '/' + vInputs[k].value;
			}
		}
		
		// jeśli nic się nie zmieniło, to nie wysyłaj koszyka
		if  (vTempUrl == vUrl)
		{
			msg.displayMsg(gNoChangeInfo);
			$('div.wait').css('display', 'none');
			return false;
		}
		
		// pokazujemy "poczekajkę"...
		$('div.wait').css('display', 'block');
		
		// ...i jedziemy AJAX-em po dane, które należy wpisać do inputów
		$.getJSON(vTempUrl, function(vData){
			for (var k in vData[0])
			{
				$('#amount_hid' + k).attr('value', vData[0][k]);
				$('#old_amount_hid' + k).attr('value', vData[0][k]);
				$('#amount' + k).attr('value', format(vData[0][k], $('#uom_is_int' + k).attr('value') == 'T'));
				if (vData[0][k] == 0)
					$('#amount' + k).removeClass(gHighlightClass);
				else
					$('#amount' + k).addClass(gHighlightClass);
			}
			// powiadamiamy wszystkich zainteresowanych o zaszłych zmianach...
			gNotifier.notify(vData);
			// ..., wyłączamy poczekajkę...
			$('div.wait').css('display', 'none');
			// ...i pokazujemy info
			msg.displayMsg(gSuccessInfo);
		});
		
		return false;
	});
	
	// pojedyńcze dodawanie do koszyka
	$('#' + vFormId + ' img.addToCart').click(function(){
		
		var vTempUrl = vUrl;
		
		// pobieramy kod towaru
		var vCode = this.id.substr(9);
		
		// szukamy inputa z naszą ilością...
		var vInput = $('#amount' + vCode).get(0);
		// ...oraz hiddena z właściwą (niezaokrągloną) ilością...
		var vHidden = $('#amount_hid' + vCode).get(0);
		// ...no i porównujemy, czy coś się zmieniło...
		var vOldHidden = $('#old_amount_hid' + vCode).get(0);
		if (vHidden.value == vOldHidden.value)
		{
			msg.displayMsg(gNoChangeInfo);
			$('div.wait').css('display', 'none');
			return false;
		}
		// ...i aktualizujemy URL
		vTempUrl += '/' + vHidden.name + '/' + vHidden.value;
		
		// weryfikujemy wartość
		verify(vCode);
		
		// pokazujemy "poczekajkę"...
		$('div.wait').css('display', 'block');
		
		// ...i jedziemy AJAX-em po dane, które należy wpisać do inputów
		$.getJSON(vTempUrl, function(vData){
			for (var k in vData[0])
				if (vInput.id == 'amount' + k)
				{
					vInput.value = format(vData[0][k], $('#uom_is_int' + k).attr('value') == 'T');
					vHidden.value = vData[0][k];
					vOldHidden.value = vData[0][k];
					if (vData[0][k] == 0)
						$('#amount' + k).removeClass(gHighlightClass);
					else
						$('#amount' + k).addClass(gHighlightClass);
				}
			// powiadamiamy wszystkich zainteresowanych o zaszłych zmianach...
			gNotifier.notify(vData);
			// ..., wyłączamy poczekajkę...
			$('div.wait').css('display', 'none');
			// ...i pokazujemy info
			msg.displayMsg(gSuccessInfo);
		});
	});
})