﻿function displayAddToCartDialog(productCode) {    
    var d = new Dialog('addToCartDialog_' + productCode, "");
    d.open();
    
    new Ajax.Updater(d.id, 'uicomponents/addtocart.asp', {
        method: 'post', 
        parameters: { product: productCode }
    });    
}

function closeAddToCartDialog(productCode) {    
    Dialog.close('addToCartDialog_' + productCode);
}

function saveAddToCartDialog(productCode) {
    var quantity = $("addToCartFormQuantity_" + productCode).value;
   
    if (!isNaturalNumber(quantity)) {
        alert ("Quantity must be a positive whole number, or zero.");
    } else {
        addToCartPostAndClose (productCode, quantity);
    }
    return false; //we're handing form submission with js
}

function addToCartRemove(productCode) {
    addToCartPostAndClose (productCode, 0);
}

function addToCartPostAndClose(productCode, quantity) {

    new Ajax.Request('services/UpdateCart.asp', {
        method:'post',
        parameters: {
            action: "update",
            product: productCode,
            quantity: quantity
        },
        onSuccess: function(transport){            
            //alert(transport.responseText);
            var json = transport.responseText.evalJSON(true);            
            
            //todo: do something with the return code.            
            
            //var d = new StatusMessage("addToCartDialogMessage_" + productCode, json.result.description);
            var d = new StatusMessage(json.result.description);
            d.open();    
            closeAddToCartDialog(productCode);            
        },
        onFailure: function(transport){     
            //alert(transport.responseText);            
        }
    });
}