function validateEmpty(fld, fldName) {
    var error = "";

    if (fld.value.length == 0) {
        error = "Wymagane pole nie zostało wypełnione: " + fldName + ".\n"
    }
    return error;  
}

function validateEmail(fld) {
    var error="";
    var tfld = fld.value;
    var emailFilter = /^[^@]+@[^@.]+\.[^@]*\w\w$/ ;
    var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/ ;
	
    if (fld.value == "") {
        error = "Adres email nie został podany.\n";
    } else if (!emailFilter.test(tfld)) {
        error = "Podany adres email jest nieprawidłowy.\n";
    } else if (fld.value.match(illegalChars)) {
        error = "Podany adres email zawiera niedozwolone znaki.\n";
    }
	
    return error;
}

function validateForm(aForm)
{
    var reason = "";

	reason += validateEmpty(aForm.firstname, "Imię");
	reason += validateEmpty(aForm.lastname, "Nazwisko");
	reason += validateEmpty(aForm.address, "Ulica i nr domu");
	reason += validateEmpty(aForm.postcode, "Kod pocztowy");
	reason += validateEmpty(aForm.city, "Miasto");
	reason += validateEmpty(aForm.country, "Kraj");
	reason += validateEmpty(aForm.email, "Email");
	reason += validateEmpty(aForm.phone, "Telefon");
	reason += validateEmail(aForm.email, "Email");
      
	if (reason != "") {
		alert("Formularz zawiera błędy:\n" + reason);
		return false;
	}
	
	return true;
}

function recalculateCart(aShipment) {
	var shipment = aShipment;
	var payment = document.cartForm.payment.value;

	$.ajax({
            url: "/pl/basket.php?shipment=" + shipment + "&payment=" + payment,
            success: function(responseText) {
				$("#cartTable").html(responseText);
				 updateCart(shipment, payment);
            },
            error: function() {
				alert('Error recalculating cart.');
            }
        });
}

function increaseQuantity(aShipment, sender) {
	var shipment = aShipment;
	var payment = document.cartForm.payment.value;
	var input = document.getElementById('cartQuantity_' + sender);
	var value = parseInt(input.value);
	
	value = value + 1;
	input.value = value;
	
	$.ajax({
            url: "/pl/basket.php?action=increase&shipment=" + shipment + "&payment=" + payment + "&itemIndex=" + sender,
			cache: false,
            success: function(responseText) {
				$("#cartTable").html(responseText);
				updateCart(shipment, payment);
            },
            error: function() {
				alert('Error recalculating cart.');
            }
        });
}

function decreaseQuantity(aShipment, sender) {
	var shipment = aShipment;
	var payment = document.cartForm.payment.value;
	var input = document.getElementById('cartQuantity_' + sender);
	var value = parseInt(input.value);
	
	if(value > 1) {
		value = value - 1;
		input.value = value;
	
		$.ajax({
				url: "/pl/basket.php?action=decrease&shipment=" + shipment + "&payment=" + payment + "&itemIndex=" + sender,
				cache: false,
				success: function(responseText) {
					$("#cartTable").html(responseText);
					updateCart(shipment, payment);
				},
				error: function() {
					alert('Error recalculating cart.');
				}
			});
	}
}

function changeMediumImage(mediumImage, largeImage, productName) {
	$("#medium-image-placeholder").html('<a href="/img/'+ largeImage +'" rel="lightbox" title="'+ productName +'"><img src="/img/' + mediumImage + '" border="0" name="cap"></a>');
	$("#medium-image-link").html('<a href="/img/'+ largeImage +'" rel="lightbox" title=""><b>Pokaż w pełnym rozmiarze</b></a>');
	initLightbox();
}

function addToCart(idProduct, idColor, idSize) {
	$("#loader").show();
	$("#smallCart").html('');
	$.ajax(
		{
			url: "/pl/addToCart.php?action=buy&pid=" + idProduct + "&size=" + idSize + "&color=" + idColor,
			cache: false,
			success: function(responseText) {
				$("#smallCart").html(responseText);
				$("#loader").hide();
			},
			error: function() {
				alert('Error adding to cart. Please try again.');
			}
		}
	);
}

function removeFromCart(aShipment, sender) {
	var shipment = aShipment;
	var payment = document.cartForm.payment.value;
	
	$.ajax({
            url: "/pl/basket.php?action=delete&shipment=" + shipment + "&payment=" + payment + "&itemIndex=" + sender,
			cache: false,
            success: function(responseText) {
				$("#cartTable").html(responseText);
            },
            error: function() {
				alert('Error recalculating cart.');
            }
        });
}

function updateCart(aShipment, aPayment) {
	var shipment = aShipment;
	var payment = aPayment;
	
	$("#loader").show();
	$("#smallCart").html('');
	$.ajax(
		{
			url: "/pl/addToCart.php?action=update&shipment=" + shipment + "&payment=" + payment,
			cache: false,
			success: function(responseText) {
				$("#smallCart").html(responseText);
				$("#loader").hide();
			},
			error: function() {
				alert('Error updating to cart. Please try again.');
			}
		}
	);
}