var getCart = function () {
    var start = document.cookie.indexOf('cart=');
    var len = start + 5;
    if ((start == -1) || ((!start) && ('cart' != document.cookie.substring(0, 4)))) {
        return null;
    }
    var end = document.cookie.indexOf(';', len);
    if (end == -1) {
        end = document.cookie.length;
    }
    
    var cart = {}, items = (new String(unescape(document.cookie.substring(len, end)))).split('|');
    for (var i in items) {
        var item = (new String(items[i])).split(':');
        cart[item[0]] = [item[1], parseInt(item[2], 10)];
    }
    
    return cart; 
}

var setCart = function (goods) {
    if ('object' == typeof goods) {
        var cart_items = [];
        for (var i in goods) {
            if (i && 'object' == typeof goods[i] && goods[i][0] && goods[i][1]) { 
                cart_items.push(i+':'+goods[i].join(':'));
            }
        }
        var today = new Date();
        today.setTime(today.getTime());
        var expires_date = new Date(today.getTime() + 14 * 1000 * 60 * 60 * 24);
        if (0 == cart_items.length) {
            emptyCart();
        } else {
            document.cookie = 'cart='+escape(cart_items.join('|'))+';path=/;expires='+expires_date.toGMTString();
        }
    }
}

var emptyCart = function () {
    document.cookie = 'cart=;path=/;expires=Thu, 01-Jan-1970 00:00:01 GMT';
    if (document.getElementById('table_container')) {
        renderFullCart();
    }
}

var clearCart = function () {
    if (confirm('Очистить корзину?')) {
        emptyCart();
setCertContent();
closeModalWindow();
    }
}

var buy = function (item_id) {
    try {
        var quantity = parseInt(document.getElementById('quantity'+item_id).value, 10);
        if (quantity && 0 < quantity && 999 >= quantity) {
            var time = (new Date()).getTime();
            asyncRequest('/get_item.php?item_id='+item_id, function () { 
                var cart = getCart();
                if (!cart) { cart = {}; }
                if (cart[item_id]) { cart[item_id][1] += parseInt(quantity, 10); }
                else { cart[item_id] = [parseInt(data.costrozn, 10), parseInt(quantity, 10)]; }
                setCart(cart);
                renderMiniCart();
var t = ((new Date()).getTime()) - time;
openModalWindow($('mini-cart').innerHTML+' | <a href="javascript:closeModalWindow();">продолжить просмотр каталога</a>');
            });
        } else {
            alert('Количество товаров должно быть целым неотрицательным целым числом, большим нуля');
        }
    } catch (e) { alert('Не удалось добавить товар в корзину.'); } 
}

var renderMiniCart = function () {
    var quantity = 0, amount = 0;
    var cart = getCart();
    for (var i in cart) {
        quantity += cart[i][1];
        amount += cart[i][1] * parseInt(cart[i][0], 10);
    }                   
    setCertContent(quantity, amount);       
};

renderMiniCart();
