﻿function ResetSize(sizesID) {
    $(sizesID + ' >option').remove();
    sizes = $(sizesID);
    sizes.append($('<option></option>').val('').html('--'));
    sizes.attr("disabled", true);
    return sizes;
}
function ResetQty(qtyID) {
    qty = $(qtyID);
    qty.val('');
    qty.attr("disabled", true);
    return qty;
}
function ResetPrices(priceunitID, priceID) {
    priceunit = $(priceunitID);
    price = $(priceID);
    priceunit.html('');
    price.html('');
}

function ChangeAssortmentColour(EntityID_ColourCode, AssortmentCode, qtyID, priceunitID, priceID) {
    qty = ResetQty(qtyID);
    ResetPrices(priceunitID, priceID);
    if (EntityID_ColourCode != '') {
        arr = EntityID_ColourCode.split('_');
        if (arr[2] == '0') {
            // is out of stock
            return false;
        }
    }
    $('#buyNowButton').addClass('disabled');
    $('#imgAjax').show();
    ajaxPost('/system/services/ProductBasket.asmx/ChangeAssortmentColour',
            { ProductCode: ProductCode, AssortmentCode: AssortmentCode, EntityID_ColourCode: EntityID_ColourCode },
            function (res) {
                var obj = JSON.parse(res.d);
                if (obj.CanAddToBasket == true) {
                    $('#buyNowButton').removeClass('disabled');
                }
                if (EntityID_ColourCode != '') {
                    qty.removeAttr("disabled");
                    qty.focus();
                }
                $('#imgAjax').hide();
            });
}

function ChangeColour(ColourCode, sizesID, qtyID, priceunitID, priceID, idx) {
    $('#imgAjax').show();
    sizes = ResetSize(sizesID);
    qty = ResetQty(qtyID);
    ResetPrices(priceunitID, priceID);
    arr = ColourCode.split('_');
    ajaxPost('/system/services/ProductBasket.asmx/ChangeColour',
            { ProductCode: ProductCode, ColourCode: ColourCode, idx: idx },
            function(res) {
                if (ColourCode != '' && arr[1] == '1') {
                    var obj = JSON.parse(res.d);
                    $.each(obj, function(val, size) {
                        sizes.append(
                            $('<option></option>').val(size.Key).html(size.Value)
                        );
                    });
                    numOptions = $(sizesID + ' >option').size();

                    sizes.removeAttr("disabled");
                    if (numOptions == 2) {
                        sizes.get(0).selectedIndex = 1;
                    }
                    if (numOptions <= 2) {
                        if (arr[1] == '1') {
                            qty.removeAttr("disabled");
                            qty.get(0).focus();
                        }
                    } else {
                        sizes.get(0).focus();
                    }
                }
                $('#imgAjax').hide();
            });
}

function ChangeSize(SizeCode, qtyID, priceunitID, priceID, idx) {
    $('#buyNowButton').addClass('disabled');
    qty = ResetQty(qtyID);
    ResetPrices(priceunitID, priceID);
    arr = SizeCode.split('_');
    if (SizeCode != '' && arr[2] == '1') {
        $('#imgAjax').show();
        ajaxPost('/system/services/ProductBasket.asmx/ChangeSize',
                { ProductCode: ProductCode, SizeCode: SizeCode, idx: idx },
                function (res) {
                    var obj = JSON.parse(res.d);
                    if (obj.content == "") {
                        qty.removeAttr("disabled");
                        qty.get(0).focus();
                    } else {
                        $('#Order').html(obj.content);
                        $('.ddlColours:last').get(0).focus();
                    }
                    if (obj.CanAddToBasket == true) {
                        $('#buyNowButton').removeClass('disabled');
                    }
                    $('#imgAjax').hide();
                });
    }
}

function ChangeQty(qty, priceunitID, priceID, idx) {
    $('#imgAjax').show();
    $('#buyNowButton').addClass('disabled');
    $('div.buyNow span a').attr('href', '');
    $(priceunitID).html("<img src='/images/lightbox/loading3.gif' />");
    $(priceID).html("<img src='/images/lightbox/loading3.gif' />");
    ajaxPost('/system/services/ProductBasket.asmx/ChangeQuantity',
            { ProductCode: ProductCode, Quantity: qty, idx: idx },
            function (res) {
                var obj = JSON.parse(res.d);
                if (obj.status == 'OK') {
                    $('#Order').html(obj.content);
                    $('.ddlColours:last').get(0).focus();
                    if (obj.CanAddToBasket == true) {
                        $('#buyNowButton').removeClass('disabled');
                    }
                }
                if (obj.error !== undefined) {
                    alert(obj.error);
                }
                $('#imgAjax').hide();
            });
}

function ChangeAssortmentQty(qty, AssortmentCode, qtyID, priceunitID, priceID) {
    ResetPrices(priceunitID, priceID);
    $('#buyNowButton').addClass('disabled');
    $(priceunitID).html("<img src='/images/lightbox/loading3.gif' />");
    $(priceID).html("<img src='/images/lightbox/loading3.gif' />");
    $('#imgAjax').show();
    ajaxPost('/system/services/ProductBasket.asmx/ChangeAssortmentQuantity',
            { ProductCode: ProductCode, AssortmentCode: AssortmentCode, Quantity: qty },
            function(res) {
                var obj = JSON.parse(res.d);
                if (obj.status == 'OK') {
                    if (obj.NewStock !== undefined) {
                        $(qtyID).val(obj.NewStock);
                    }
                    priceunit = $(priceunitID);
                    price = $(priceID);
                    priceunit.html(obj.PricePerUnit);
                    price.html(obj.PriceTotal);
                    if (obj.CanAddToBasket == true) {
                        $('#buyNowButton').removeClass('disabled');
                    }
                }
                if (obj.error !== undefined) {
                    alert(obj.error);
                }
                $('#imgAjax').hide();
            });
}

function DeleteItem(idx) {
    $('#imgAjax').show();
    $('#buyNowButton').addClass('disabled');
    ajaxPost('/system/services/ProductBasket.asmx/DeleteItem',
        { ProductCode: ProductCode, idx: idx },
        function (res) {
            var obj = JSON.parse(res.d);
            $('#Order').html(obj.content);
            $('.ddlColours:last').get(0).focus();
            if (obj.CanAddToBasket == true) {
                $('#buyNowButton').removeClass('disabled');
            }
            $('#imgAjax').hide();
        });
}

function AddToCart() {
    if($('#buyNowButton').hasClass('disabled')) {
        alert(CannotAddToBasketMessage);
    } else {
        $('#imgAjax').show();
        ajaxPost('/system/services/ProductBasket.asmx/AddToCart',
            { ProductCode: ProductCode },
            function(res) {
                top.location.href = BasketNavigateUrl;
            });
    }
}

var qtyTimer;
function QtyCheckNumbers(elem) {
    if (qtyTimer) clearTimeout(qtyTimer);
    //elem.value = elem.value.replace(/([^0-9\*]*)/g, "");
    qtyTimer = setTimeout("$('#" + elem.id + "').blur();", 500);
}