﻿
var selectedProducts = null;

function getSelectedProducts()
{
    if (!selectedProducts)
    {
        if (document.cookie.length > 0)
        var c_start = document.cookie.indexOf('compare_products=');
        if (c_start != -1)
        {
            c_start = c_start + 17;
            var c_end = document.cookie.indexOf(";", c_start);
            if (c_end != -1)
                selectedProducts = unescape(document.cookie.substring(c_start, c_end));
            else
                selectedProducts = unescape(document.cookie.substring(c_start));
            selectedProducts = (selectedProducts.length) ? selectedProducts.split(',') : [];
        }
    }
    
    return (selectedProducts) ? selectedProducts : [];
}

function saveCookie(products)
{
    selectedProducts = products;
    document.cookie = 'compare_products='+products.join(',')+'; path=/';
}

function isProductSelected(product_id)
{
    var products = getSelectedProducts();
    for (var i = 0; i < products.length; i++)
    {
        if (products[i] == product_id) return true;
    }
    return false;
}

function addProduct(product_id)
{
    var products = getSelectedProducts();
    if (products.length >= 4) return false;
    if (isProductSelected(product_id)) return true;

    products[products.length] = product_id;
    saveCookie(products);
        
    return true;
}

function removeProduct(product_id)
{
    var products = getSelectedProducts();
    var new_products = [];
    for (var i = 0; i < products.length; i++)
    {
        if (products[i] != product_id) 
        {
            new_products[new_products.length] = products[i];
        }
    }
    saveCookie(new_products);
    return true;
}


 $(function(){
    $('.Compare').each(function(i, elem){
        $(elem).find('input').each(function(j, cb){
            cb.checked = isProductSelected(cb.value);
            $(cb).change(function(){
                var product_id = this.value;
                if (this.checked)
                {
                    if (!addProduct(product_id))
                    {
                        this.checked = false;
                    }
                }
                else
                {
                    removeProduct(product_id);
                }
            });
        });
    });
 });
