/*
*   Объект-хранилище. Все, что в него не положи, сохраняется в куках.
*
*   .init();
*   .append({id:1, name:'Hello'});
*   .appendArray([{id:1, name:'Hello'},{id:2, name:'bye'}]);
*   .remove(1);
*   .exists(1); // true|false
*   .empty();
*
*/
var Compare = window.Compare = {
    name: 'compare', // переменная для cookie
    items: [], // массив айдишников элементов каталога для сравнения
    init: function() {
        // пробуем взять содержимое из куков
        if(Cookie.get(Compare.name)) {
            cookie = JSON.parse(Cookie.get(Compare.name));
            Compare.items = cookie.items;
        }
        Compare.render();
    },
    append: function(item) {
        // проверим, нет ли уже в хранилище элемента с таким id
        var flag_append = true;
        $.each(Compare.items, function(i, storageItem) {
            if(parseInt(storageItem.id) === parseInt(item.id)) {
                flag_append = false;
                return false;
            }
        });
        // если такой элемент не нашелся, добавляем его
        if (flag_append === true) {
            Compare.items.push(item); 
        }
        // сразу пишем в куку
        Compare.updateCookie();
    },
    appendArray: function(items) {
        // items - array примерно такого вида: [{id:1, name:'hello'},{id:2, name:'bye'}]
        // поищем каждый элемент пришедшего массива в нашем Compare.items
        // и сложем в него каждый ненайденный элемент
        $.each(items, function(i, item) {
            var flag_append = true;
            $.each(Compare.items, function(j, storageItem) {
                if(parseInt(storageItem.id) === parseInt(item.id)) {
                    flag_append = false;
                    return false;
                }
            });
            if (flag_append === true) {
                Compare.items.push(item); 
            }
        });
        Compare.updateCookie();
    },
    remove: function(id) {
        // удаляем из Compare по id
        $.each(Compare.items, function(i, storageItem){
            if(parseInt(storageItem.id) === parseInt(id)) { 
                Compare.items.splice(i,1);
                return false;
            }
        });
        Compare.updateCookie();
    },
    exists: function(id) {
        var flag_exists = false;
        $.each(Compare.items, function(i, storageItem) {
            if(parseInt(storageItem.id) === parseInt(id)) {
                flag_exists = true;
                return false;
            }
        });
        if(flag_exists) {
            return true;
        }
        return false;
    },
    empty: function() {
        // выкидываем все сразу
        Compare.items = [];
        Compare.updateCookie();
    },
    updateCookie: function() {
        Cookie.set(this.name, JSON.stringify({'items': Compare.items}), null, '/');
        Compare.render();
    },
    render: function () {
        var template = '<div class="top mid"><div class="wrap"><div class="order-brief">{qty} {qtyWord}</div><div class="heading" style="padding-top:19px;"><a href="/compare/">Сравнение</a></div></div></div>',
            qty = Compare.items.length;
        if (qty > 0) {
            template = template.supplant({
                qty: qty,
                qtyWord: Meta.decline(qty, 'товаров', 'товар', 'товара', 'товаров')
            });
            $('#compare').html(template);
        } else {
            $('#compare').html('');
        }
    }
};

$(function () {

    Compare.init();

    $('.compare_add').click(function (e) {
        var item = {'id': $(this).attr('item_id')};
        Compare.append(item);  
        
        e.preventDefault();
    });
});
