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

    if (fld.value.length == 0) {
        error = "Required field is empty: " + fldName + ".\n"
    }
    return error;  
}

function validateEmail(fld) {
    var error="";
    var tfld = fld.value;
    var emailFilter = /^[^@]+@[^@.]+\.[^@]*\w\w$/ ;
    var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/ ;
	
    if (fld.value == "") {
        error = "You didn't enter an email address.\n";
    } else if (!emailFilter.test(tfld)) {
        error = "Please enter a valid email address.\n";
    } else if (fld.value.match(illegalChars)) {
        error = "The email address contains illegal characters.\n";
    }
	
    return error;
}

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

	reason += validateEmpty(aForm.firstname, "First name");
	reason += validateEmpty(aForm.lastname, "Last name");
	reason += validateEmpty(aForm.address, "Address");
	reason += validateEmpty(aForm.postcode, "Postcode");
	reason += validateEmpty(aForm.city, "City");
	reason += validateEmpty(aForm.country, "Country");
	reason += validateEmpty(aForm.email, "Email");
	reason += validateEmpty(aForm.phone, "Phone");
	reason += validateEmail(aForm.email, "Email");
      
	if (reason != "") {
		alert("Form contains errors:\n" + reason);
		return false;
	}
	
	return true;
}

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

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

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

function decreaseQuantity(sender) {
	var shipment = document.cartForm.shipment.value;
	var input = document.getElementById('cartQuantity_' + sender);
	var value = parseInt(input.value);
	
	if(value > 1) {
		value = value - 1;
		input.value = value;
	
		$.ajax({
				url: "/en/basket.php?action=decrease&shipment=" + shipment + "&itemIndex=" + sender,
				cache: false,
				success: function(responseText) {
					$("#cartTable").html(responseText);
					updateCart(shipment);
				},
				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>View full size</b></a>');
	initLightbox();
}

function addToCart(idProduct, idColor, idSize) {
	$("#loader").show();
	$("#smallCart").html('');
	$.ajax(
		{
			url: "/en/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(sender) {
	var shipment = document.cartForm.shipment.value;
	
	$.ajax({
            url: "/en/basket.php?action=delete&shipment=" + shipment + "&itemIndex=" + sender,
			cache: false,
            success: function(responseText) {
				$("#cartTable").html(responseText);
            },
            error: function() {
				alert('Error recalculating cart.');
            }
        });
}

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