var Cart = function(options){
    var products = {};

    options = $.extend({
        cookieName: 'shoppingCart'
    }, options || {});
    
    this.addToCart = function(obj){
        products[obj.psc] = {
            'quantity': parseInt(obj.quantity), 
            //'name': obj.name, 
            //'color': obj.color,
            'price': obj.price,
            'overallPrice': parseInt(obj.price) * parseInt(obj.quantity)
        };
    }
    
    this.updateProductQuantity = function(psc, quantity){
        if (products[psc]) {
            products[psc].quantity = quantity;
            products[psc].overallPrice = products[psc].quantity * products[psc].price;
        }
    }
    
    this.getCart = function(){
        for (var i in products) {
            console.log(i+':')
            console.log(products[i])
        }
    }

    this.getProduct = function(psc){
        return products[psc];
    }

    this.getProducts = function(){
        return products;
    }
    
    this.getOverallPrice = function(){
        var result = 0;
        for (var i in products) {
            if (products[i] && !isNaN(products[i]['overallPrice'])) {
                result += products[i]['overallPrice'];    
            }
        }
        return result;
    }

    this.getOverallQuantity = function(){
        var result = 0;
        for (var i in products) {
            if (products[i] && !isNaN(products[i]['quantity'])) {
                result += parseInt(products[i]['quantity']);
            }
        }
        return result;
    }

    this.removeFromCart = function(psc){
        products[psc] = undefined;
    }

    this.importCart = function(){
        var src = $.cookie(options.cookieName);
        if (src) {
            products = eval(src);    
        }
    }
    
    this.exportCart = function(){
//        var src = products.toSource();

        var prods = this.getProducts();

        var src = '({'
        for(var i in prods){
            src += ''+i+':{';
            for(var j in prods[i]){
                src += j+':'+prods[i][j]+',';
            }
            src+='},';
        }
        src += '})';
        src = src.replace(/,\}/g, '}');
        
        $.cookie(options.cookieName, src, {path: '/'});
    }
    
}

