jQuery.AddToBag = function() {

    var skus = $('.hiddensku');
    var quants = $('.hiddenquant');
    var monogram = $('.hiddenMonogram');
    var addToBagInput = '';
    var addToBagMonogramInput = '';
    var validItemAddedToBag = false;

    var alertErrMsg = "Please select a color or size for at least one item";
    var alertMonogramErrMsg = "";

    for (var i = 0; i < skus.length; i++) {

        //alert("sku: " + i);

        var hasColorOrSize = true;
        var hasQuantity = true;
        var productSupportsMonogramming = false;
        var hasMonogrammingInitial = false;


        if (skus[i].value.split("|")[1] == 0) {
            hasColorOrSize = false;
        }

        if (quants[i].value == 0) {
            hasQuantity = false;
        }
        if (monogram[i] != null) {
            productSupportsMonogramming = true;

            if (monogram.length > 0) {
                //monogramming required
                if (monogram[i].value != null) {
                    if (monogram[i].value != "") {
                        hasMonogrammingInitial = true;
                        addToBagMonogramInput += skus[i].value.split("|")[0] + "|" + monogram[i].value;

                        if ((i + 1) < skus.length) {
                            addToBagMonogramInput += ",";
                        }
                    }

                }
            }

        }

        //alert("sku #: " + i + ", color or size? " + hasColorOrSize + ", quantity? " + hasQuantity + ", monogramming?" + productSupportsMonogramming + ", initial?" + hasMonogrammingInitial);

        if (hasColorOrSize && hasQuantity) {

            if (productSupportsMonogramming) {
                if (hasMonogrammingInitial)
                    validItemAddedToBag = true;
                else
                    validItemAddedToBag = false;

            }
            else
                validItemAddedToBag = true;

            if (validItemAddedToBag) {

                addToBagInput += skus[i].value + "|" + quants[i].value;

                if ((i + 1) < skus.length) {
                    addToBagInput += ",";
                }

                continue;
            }
        }

        if (!hasColorOrSize && !hasQuantity)
            continue;

        if (!hasColorOrSize) {
            alertErrMsg = "Please select a color or size for at least one item";
        }

        else if (!hasQuantity) {
            alertErrMsg = "Please select a quantity of 1 or greater for at least one item.";
        }
        else if (productSupportsMonogramming && !hasMonogrammingInitial) {
            alertMonogramErrMsg = "Please select monogramming option before adding this item to your shopping bag.";

        }

    }

    // monogram error message overrides everything - do not submit to cart
    if (alertMonogramErrMsg != "") {
        alert(alertMonogramErrMsg);
    }
    // otherwise, if valid item can be added to cart
    else if (validItemAddedToBag) {
        $('.addToBagInput')[0].value = addToBagInput;
        if ($('.addToBagMonogramInput').length > 0) {
            $('.addToBagMonogramInput')[0].value = addToBagMonogramInput;
        }
        $('form')[0].submit();
    }
    else {
        alert(alertErrMsg);
    }
}

var setOptions = function(chosen,sizeId,availId){
    var sizeDropDown = sizeId;
	    $('#'+availId).html(avail[chosen]);
        selectedSku[availId] = chosen;
        $('.sku'+availId).val(availId+"|"+chosen);
        changedSku(chosen,availId);
};
        
var changedColor = function(x,id){
    var sIndex = x.selectedIndex;
    $('#'+id).html(avail[x.options[sIndex].value]);
    selectedSku[id] = x.options[sIndex].value;
    $('.sku'+id).val(id+"|"+x.options[sIndex].value);
    changedSku(selectedSku[id],id);
}
var changedSize = function(x, id, colorId) {
    if (colorId != undefined) {
        if (x.selectedIndex == 0) {
            colorId.options.length = 0;
            colorId.options[colorId.options.length] = new Option('THEN COLOR', '0');
            $('#' + id).html("");
            changedColor(colorId, id);
        } else if (colorId.options != undefined) {
            var chosen = $(x.options[x.selectedIndex]).text() + id;
            colorId.options.length = 0;
            var colorsCount = 0;
            for (i in colorOptions[chosen]) {
                if (typeof (colorOptions[chosen][i]) != typeof (changedSize)) {
                    colorsCount++;
                }
            }
            if (colorsCount > 1) {
                colorId.options[colorId.options.length] = new Option('THEN COLOR', '0');
            }
            for (i in colorOptions[chosen]) {
                if (typeof (colorOptions[chosen][i]) != typeof (changedSize)) {
                    colorOptions[chosen][i].text = colorOptions[chosen][i].text.replace(/&apos;/,"'");
                    colorId.options[colorId.options.length] = colorOptions[chosen][i];
                }
            }
            colorId.selectedIndex = 0;
            changedColor(colorId, id);
        }
    }
    else {
        var sIndex = x.selectedIndex;
        $('#' + id).html(avail[x.options[sIndex].value]);
        selectedSku[id] = x.options[sIndex].value;
        $('.sku' + id).val(id + "|" + x.options[sIndex].value);
        changedSku(selectedSku[id], id);
    }
};

var updateSku = function(x){
    var sDD = document.getElementById(x);
    changedSku(sDD.options[sDD.selectedIndex].value);
}

var changedSku = function(x,id){
    var i = 1;
    if($('.hiddenquant').length > 1){
        var i = 0;
    }
    if($('.hiddenquant').length == 1){
        $('.hiddenquant').val(1);
    }
    
    if(x == 0){
        $('#'+id).html("");
    }
    
    var quantDDL = $('.quant'+id)[0];
    if ((quantDDL != undefined) && (quantityOptions[x] > 0))
    {
        quantDDL.options.length = 0;
        while(i <= quantityOptions[x]){
            quantDDL.options[quantDDL.options.length] = new Option(i,i);
            i++;
        }
    }
};
$(document).ready(function() {
    $('a.addToBag').click(function(event) { event.preventDefault(); $.AddToBag(); });
    document.forms[0].reset();
    var resetme = false;
    $('.sizeddl').each(function() {
        if ($(this).val() == "0") {
            resetme = true;
        }
    });
    $('.colorddl').each(function() {
        if ($(this).val() == "0") {
            resetme = true;
        }
    });
    if ($('.hiddenquant').length > 1) {
        $('.hiddenquant').each(function() {
            $(this).val(0);
        });
    }
    else {
        $($('.hiddenquant')[0]).val($('#ctl00_cphContent_productRepeater_ctl00_ddlQuantity').val());
    }
    if ($('.hiddenMonogram').length > 1) {
        $('.hiddenMonogram').each(function() {
            $(this).val("");
        });
    }
    else {
        $($('.hiddenMonogram')[0]).val("");
    }
    if (resetme) {

        resetSkus();
    }
});

var resetSkus = function(){
    var skus = $('.hiddensku');
    for(var i = 0; i < skus.length; i++){
        var string = skus[i].value.split("|");
        $(skus[i]).val(string[0] + "|0");
    }
}

