function checkAddToBasket(id) {
if ($("#"+id+" .sizeSelect").attr('name') == "attr_Size") {
var sizeIsSelected = false;
var radios = $("#"+id+" .sizeSelect");
for (var i=0; i < radios.length; i++) {
if (radios[i].selectedIndex) {
sizeIsSelected = true;
}
}
if (sizeIsSelected == false) {
$("#error_"+id).html("Merci de choisir une taille");
return false;
}
else {
return true;
}
}
else {
return true;
}
}
function nbAvailableBySize(id)
{
var sizes = $('#'+id+' .sizeSelect');
var nbAvailableBySize = 0;
if ($('#'+id+' .sizeSelect').attr('name') == 'attr_Size') {
for (var i=0; i < sizes.length; i++) {
if (sizes[i].checked) {
nbAvailableBySize = $('#sizeAvailable_'+id+'_'+(sizes[i].value)).attr('value');
}
}
}
return nbAvailableBySize;
}
function nbAvailableFor(id)
{
var nbAvailable = 0;
// If the product has multi-sizes available
if ($("#"+id+" .sizeSelect").attr('name') == "attr_Size") {
nbAvailable = nbAvailableBySize(id);
}
else {
nbAvailable = $("#available_"+id).attr('value');
}
return nbAvailable;
}
function selectedSize(id)
{
var sizes = $('#'+id+' .sizeSelect');
if ($('#'+id+' .sizeSelect').attr('name') == 'attr_Size') {
for (var i=0; i < sizes.length; i++) {
if (sizes[i].checked) {
return sizes[i].value;
}
}
}
return null;
}
function isSizeSelected(id)
{
var sizes = $('#'+id+' .sizeSelect');
if ($('#'+id+' .sizeSelect').attr('name') == 'attr_Size') {
for (var i=0; i < sizes.length; i++) {
if (sizes[i].checked) {
return true;
}
}
return false;
}
// There is no size to choose, so it's ok
return true;
}
function nbWantedFor(id)
{
return parseInt($('#noOfItems_'+id).val());
}
function checkBasketProductsQuantity()
{
$('.btnPlus').each(function(){
checkBasketProductQuantity($(this).attr('alt'));
});
}
function checkBasketProductQuantity(id)
{
var nbWanted = nbWantedFor(id);
var nbAvailable = nbAvailableFor(id);
// The buyer wants more items than those available, error message
if (nbWanted > nbAvailable) {
var article = 'article' + (nbWanted > 1 ? 's' : '');
var disponible = 'disponible' + (nbAvailable > 1 ? 's' : '');
var errorMessage = 'Vous souhaitiez ' + nbWanted + ' ' + article + ', mais il n\'y en a que
'+ nbAvailable + ' de ' + disponible + '.
'+
'Merci de recalculer votre panier.';
$('#error_'+id).html(errorMessage);
// We change the value to the maximum available (we can sometime end up with more than the ones available)
$('#noOfItems_'+id).val(nbAvailable);
}
}
function doPlusToBasket(id) {
var article = '';
var disponible = '';
var errorMessage = '';
var nbWanted = nbWantedFor(id);
var nbAvailable = nbAvailableFor(id);
// 1st check if a size is selected if any
if (isSizeSelected(id) == false) {
$("#error_"+id).html("Merci de choisir une taille");
return false;
}
// The buyer wants less items than those available, then let's decrement
if (nbWanted < nbAvailable) {
$('#noOfItems_'+id).val(nbWanted+1);
$('#error_'+id).html(' ');
}
// He wants more, error message
else {
article = 'article' + (nbAvailable > 1 ? 's' : '');
disponible = 'disponible' + (nbAvailable > 1 ? 's' : '');
errorMessage = 'Seulement ' + nbAvailable + ' ' + article + ' ' + disponible;
$('#error_'+id).html(errorMessage);
// We change the value to the maximum available (we can sometime end up with more than the ones available)
$('#noOfItems_'+id).val(nbAvailable);
}
return true;
}
function doLessToBasket(id)
{
var inputValue = parseInt($('#noOfItems_'+id).val());
$('#error_'+id).html(' ');
if (inputValue > 1) {
$('#noOfItems_'+id).val(inputValue-1);
}
}
$(document).ready(function() {
/* BTN + - FOR USUAL BASKET */
$('.btnMinus').click(function(){
doLessToBasket($(this).attr('alt'));
});
$('.btnPlus').click(function(){
doPlusToBasket($(this).attr('alt'));
});
$('.sizeInput').click(function(){
id = $(this).attr('alt');
$("#error_"+id).html(" ");
$('#noOfItems_'+id).val('1');
});
// If we are on the basket page, we check for quantity consistancy
if ($('#basketTable').is('tr')) {
checkBasketProductsQuantity();
}
});