function cartUpdate(updateMode, itemIndex) {
	var reqUpdate = createRequestObject();
	if (reqUpdate == null) {
		showInfoMsg('cart_response', 'La mise à jour a échoué.');
		return;
	}

	if (updateMode == 0) {
		var itemQty = document.getElementById('cart_item_qty' + itemIndex).value;
		if (isNaN(itemQty) || parseInt(itemQty) <= 0) {
			showInfoMsg('cart_response', 'S.V.P. veuillez entrer une valeur numérique positive, pour la quantité.');
			return;
		}
		
		reqUpdate.open("GET", "index.php?task=shopping&view=cart_update&mode=0&item_index=" + itemIndex + "&item_qty=" + itemQty, false);
	} else if (updateMode == 1)
		reqUpdate.open("GET", "index.php?task=shopping&view=cart_update&mode=1&item_index=" + itemIndex, false);
	
	reqUpdate.send(null);
	
	if (reqUpdate.responseText == 'true')
		window.location.href = 'index.php?task=shopping&view=cart';
	else
		showInfoMsg('cart_response', 'La mise à jour a échoué.');
}

function prodetailAddToCart(productID) {
	var itemQty = document.getElementById('product_quantity').value;
	if (itemQty.length == 0 || isNaN(itemQty) || parseInt(itemQty) <= 0) {
		showInfoMsg('prodetail_response', 'S.V.P. veuillez entrer une valeur numérique positive, pour la quantité.');
		return;
	}
	window.location.href = "index.php?task=shopping&view=cart&product_id=" + productID + "&quantity=" + itemQty;
}

function shippingContinue() {
	var first_name = document.frmShipping.first_name.value;
	var middle_name = document.frmShipping.middle_name.value;
	var last_name = document.frmShipping.last_name.value;
	var address = document.frmShipping.address.value;
	var city = document.frmShipping.city.value;
	var zip_code = document.frmShipping.zip_code.value;
	var province = document.frmShipping.province.value;
	var home_phone = document.frmShipping.home_phone.value;
	var cell_phone = document.frmShipping.cell_phone.value;
	var email = document.frmShipping.email.value;
	
	document.getElementById('shipping_response').style.display = 'none';
	
	//Check whether all the information are provided.
	if (first_name == '' ||  last_name == '' || address == '' || city == '' || zip_code == '' || 
		province == '' || home_phone == '' || email == '') {
		showInfoMsg('shipping_response', 'SVP Veuillez fournir les informations requises.');
		return;
	}
	
	//Check whether the correct zip code has been entered.
	if (zip_code.length != 6 || zip_code.search(/[a-zA-Z]\d[a-zA-Z]\d[a-zA-Z]\d/) == -1) {
		showInfoMsg('shipping_response', 'SVP Veuillez entrer un code postal valide.');
		return;
	}
	
	//Check whether the correct phone numbers have been entered.
	var home_phone = home_phone.replace(/-/g, '');
	var home_phone = home_phone.replace(/\s/g, '');
	if (home_phone.length != 10 || home_phone.search(/\d{10}/) == -1) {
		showInfoMsg('shipping_response', 'SVP veuillez entrer votre numéro de téléphone à la maison dans un format valide.(###-###-####)');
		return;
	}
	
	if (cell_phone != '') {
		var cell_phone = cell_phone.replace(/-/g, '');
		var cell_phone = cell_phone.replace(/\s/g, '');
		if (cell_phone.length != 10 || cell_phone.search(/\d{10}/) == -1) {
			showInfoMsg('shipping_response', 'SVP veuillez entrer votre numéro de téléphone cellulaire dans un format valide.(###-###-####)');
			return;
		}
	}
	
	//Check whether the correct email address has been entered.
	if (email.search(/.+@.+\x2e.+/) == -1) {
		showInfoMsg('shipping_response', 'SVP veuillez entrer un format d\'adresse email valide.');
		return;
	}
	
	//Eliminate the unnecessary characters from the phone numbers
	document.frmShipping.home_phone.value = home_phone;
	document.frmShipping.cell_phone.value = cell_phone;
	
	document.frmShipping.submit();
}