
var scitemcount = /<span id=\"shoppingcartitemcount\".*>(\d+)<\/span>/;
var sctotal = /<span id=\"shoppingcartitemtotal\".*>([\d]+\.\d\d)<\/span>/;

var scheaderdiv = "#shoppingcartheader";
var scsummarydiv = "#shoppingcartsummary";
var sctotaldiv = "#shoppingcarttotal";
var promotiondiv = "#promotion";

function addItemShoppingCart(url, checkouturl, id) {
    $.ajax({
        type: 'POST',
        url: url,
        data: { add: id },
        error: function() {
            var err = document.getElementById("error");
            div.style.display = 'block';
            div.innerHTML = '<p>Error adding item to shopping cart.</p>';
        },
        success: function(data) {
            $(scsummarydiv).html(data);
            $(scsummarydiv).css("display", "block");
            var count = data.match(scitemcount)[1];
            var total = data.match(sctotal)[1];
            updateShoppingCartMenu(url, checkouturl, count, total);
        }
    });
    return false;
}


function removeItemShoppingCart(removeurl, checkouturl, id, onsuccess) {
    $.ajax({
        type: 'POST',
        url: removeurl,
        data: { remove: id },
        success: function(data) {
            //success!!!
            var count = parseInt(data.match(scitemcount)[1]);
            var total = data.match(sctotal)[1];
            $(sctotaldiv).html(data);
            if (count > 0) {
                $(sctotaldiv).css("display", "block");
            } else {
                $(sctotaldiv).css("display", "none");
            }
            updateShoppingCartMenu(removeurl, checkouturl, count, total);
            onsuccess(count);
        }
    });
}

function setItemShoppingCart(setitemurl, id, quantity, itemdiv, totalurl, checkouturl) {
    $.ajax({
        type: 'POST',
        url: setitemurl,
        data: { set: id, quantity: quantity },
        error: function() {
            //XXX update error div
        },
        success: function(data) {
            $("#" + itemdiv).html(data);
            updateShoppingCartTotal(totalurl, setitemurl, checkouturl);
        }
    });
}

function updateShoppingCartMenu(mainurl, checkouturl, count, total) {
    var dollars = total.substring(0, total.length - 3);
    var cents = total.substring(total.length - 2);
    var total2 = (dollars != 0) ? "$<span class=\"major\">" + dollars + "</span><span class=\"minor\">." + cents + "</span>" : "<span class=\"major\">" + cents + "</span><span class=\"minor\">c</span>";
    if (count > 1) {
        $(scheaderdiv).html("<ul><li class=\"total\"><a href=\"" + mainurl + "\">" + total2 + "</a></li><li><a href=\"" + mainurl + "\">(" + count + "&nbsp;items)</a>&nbsp;<a href=\"" + checkouturl + "\">checkout</a></li></ul>");
        $(scheaderdiv).css("display", "block");
    } else if (count == 1) {
        $(scheaderdiv).html("<ul><li class=\"total\"><a href=\"" + mainurl + "\">" + total2 + "</a></li><li><a href=\"" + mainurl + "\">(" + count + "&nbsp;item)</a>&nbsp;<a href=\"" + checkouturl + "\">checkout</a></li></ul>");
        $(scheaderdiv).css("display", "block");
    } else {
        $(scheaderdiv).html("");
        $(scheaderdiv).css("display", "none");
    }
}

function updateShoppingCartTotal(totalurl, mainurl, checkouturl) {
    $.ajax({
        type: 'POST',
        url: totalurl,
        error: function() {
            //XXX update error div
        },
        success: function(data) {
            $(sctotaldiv).html(data);
            $(sctotaldiv).css("display", "block");
            var count = parseInt(data.match(scitemcount)[1]);
            var total = data.match(sctotal)[1];
            updateShoppingCartMenu(mainurl, checkouturl, count, total);
        }
    });
}


