﻿// Cookie Helpers
function createCookie(name, value, days) {
    if (days) {
        var date = new Date();
        date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
        var expires = "; expires=" + date.toGMTString();
    }
    else var expires = "";
    document.cookie = name + "=" + value + expires + "; path=/";
}

function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for (var i = 0; i < ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0) == ' ') c = c.substring(1, c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
    }
    return null;
}

function eraseCookie(name) {
    createCookie(name, "", -1);
}

// CompareProducts
var compareSKU = [];
var maxProdsToCompare = 5;
var cookieName = "CMPCAT_" + currentCategory;

$(document).ready(initCompare);

function initCompare() {

    $("span#cmpButtonTop ").click(doCompare);
    $("div.productCompareBox a").click(doCompare);

    $("span#cmpdeselct").click(doRemoveAll);
    
    // restore product list from stored data
    var storedSelection = readCookie(cookieName);
    if (storedSelection != null) {
        var seletedSKU = storedSelection.split(',')
        for (i = 0; i < seletedSKU.length; i++) {
            compareSKU.push(seletedSKU[i]);
            $("#CMP_" + seletedSKU[i]).attr('checked', 'checked');
        }
    }
    // update indicator
    if (compareSKU.length > 0) {
        $("div.cmphead span.quantity").html(compareSKU.length);
        $("div.cmphead div.controls").show();
        $("div.cmphead div.removeAll").show();
    }
}

function removeFromCompareList(prodID, url) {
    var pos = jQuery.inArray(prodID, compareSKU);
    compareSKU.splice(pos, 1);
    createCookie(cookieName, compareSKU.join(','));
    window.location = url;
}

function addToCompareList(prodId) {
    var pos = jQuery.inArray(prodId, compareSKU);
    if ($("#CMP_" + prodId).attr('checked')) {
        if (compareSKU.length >= maxProdsToCompare) {
            showCmpError('comparemaxerror');
            $("#CMP_" + prodId).removeAttr('checked');
        }
        else {
            if (pos == -1) {
                compareSKU.push(prodId);
            }
        }
    }
    else {
        if (pos > -1) {
            compareSKU.splice(pos, 1);
        }
    }
    //store selection
    if (compareSKU.length < 1) {
        eraseCookie(cookieName);
        $("div.cmphead div.removeAll").hide();
    }
    else {
        createCookie(cookieName, compareSKU.join(','));
        $("div.cmphead div.removeAll").show();
    }
    // update indicator
    if (compareSKU.length > 0) {
        $("div.cmphead span.quantity").html(compareSKU.length);
        $("div.cmphead div.quantity").show();
        $("div.cmphead div.controls").show();
    }
    else {
        $("div.cmphead span.quantity").hide();
    }
}

function doCompare() {
    if (compareSKU.length > maxProdsToCompare) {
        alert("Max compare products is " + maxProdsToCompare);
    }
    else if (compareSKU.length < 2) {
        showCmpError('compareoneerror');
    }
    else {
        var urlStr = compareSKU.join(',');
        window.location = pls_appName + "Compare.aspx?Catalog=" + currentCatalog +"&Category="+currentCategory+"&Products=" + urlStr;
    }
}

function doRemoveAll() {
    compareSKU = new Array();
    eraseCookie(cookieName);
    var checkboxes = $("input:checkbox[id^='CMP_'][checked='true']");
    jQuery.each(checkboxes, function() { this.checked = false; });
    $("div.cmphead span.quantity").html("")
    $("div.cmphead div.removeAll").hide();
}

function showCmpError(elemId) {
    var ele = $('#' + elemId);
    var caption = ele.attr('title');
    var url = "TB_inline?height=" + ele.height() + "&width=" + ele.width() + "&inlineId=" + elemId;
    tb_show(caption, url, false);// thickbox error display
}

