//
// ShoppingCart Class
//
function ShoppingCart()
{
}

//
// ShoppingCart ajaxProcessForm
//
ShoppingCart.ajaxProcessForm = function(formClass)
{
    var data =
    {
        'scAjaxAction' : formClass
    }

    var str = '';

    jQuery('.SCChanged.' + formClass).each(
        function()
        {
            j = jQuery(this);

            var value = null;

            if (j.is('input:checkbox'))
            {
                value = j.is('input:checked');
            }
            else
            {
                value = j.val();
            }

            str += j.attr('name') + ': ' + value + '\n';
            data[j.attr('name')] = value;
        }
    );

    jQuery('.Status.' + formClass).html('<div class="Spinner" style="margin-left: 20px;"></div> <p>Contacting server...</p>');

    jQuery.post(
        '/',
        data,
        function(returnData)
        {
            jQuery('.Status.' + formClass).html('<p>' + returnData.status + '</p>');

            jQuery('.SCChanged.' + formClass).each(
                function()
                {
                    jQuery(this).removeClass('SCChanged');
                }
            );

        },
        'json');
}

//
// ShoppingCart shipOrder
//
ShoppingCart.shipOrder = function(orderNumber, orderClass)
{
    hasShippedCell = jQuery('tr.' + orderClass + ' > td.HasShipped');
    shipButton = jQuery('tr.' + orderClass + ' > td.Action > button');
    shipButton.attr('disabled', true);
    hasShippedCell.html('Shipping...');

    jQuery.post(
        '/',
        {
            'scAjaxAction': 'scAjaxActionShipOrder',
            'orderNumber': orderNumber
        },
        function(ajaxResponse)
        {
            if (ajaxResponse.hasRequestSucceeded)
            {
                hasShippedCell.html('Yes');
            }
            else
            {
                shipButton.attr('disabled', false);
                hasShippedCell.html('No');
                alert(ajaxResponse.message);
            }
        },
        'json');
}

//
// ShoppingCart onChange
//
ShoppingCart.onChange = function()
{
    jQuery(this).addClass('SCChanged');
}


//
// Attach change handler to SCForm fields
//

jQuery(document).ready(
    function()
    {
        jQuery('.SCForm').each(
            function()
            {
                jQuery(this).change(ShoppingCart.onChange);
            }
        );
    }
);

