var CookieMan = Csn.Web.Cookie;

_getCheckBoxControl = function(mode)
{
    return $(mode);
}

LoadCheckBox = function()
{
    var cookieValue = CookieMan.Get(cookieName);
    
    var cbList = _getCheckBoxControl("." + uncheckedClass);
    var totalCb = cbList.length;
    
    for (var i=0; i<totalCb; i++)
    {
        if (cbList[i].id != undefined && cbList[i].id.indexOf(prefixCbName) > -1)
        {
            var itemId = cbList[i].id.substring(prefixCbName.length);
            if (cookieValue.indexOf(itemId) > -1)
            {
                $('#' + cbList[i].id).removeClass(uncheckedClass);
                $('#' + cbList[i].id).addClass(checkedClass);
            }
        }
    }
    
    UpdateCount();
}

ToggleCheckBox = function(sender, valueToAdd)
{
    var cookieValue = CookieMan.Get(cookieName);
    if (cookieValue.indexOf(valueToAdd) > -1)
    {
        CookieMan.RemoveValue(cookieName, valueToAdd);
        $("#" + sender.id).removeClass(checkedClass);
        $("#" + sender.id).addClass(uncheckedClass);
    }
    else
    {
        CookieMan.Append(cookieName, valueToAdd);
        $("#" + sender.id).removeClass(uncheckedClass);
        $("#" + sender.id).addClass(checkedClass);
    }
    
    UpdateCount();
}

ClearAllCheckBox = function()
{
    CookieMan.Remove(cookieName);
    
    var cbList = _getCheckBoxControl("." + checkedClass);
    
    cbList.removeClass(checkedClass);
    cbList.addClass(uncheckedClass);
    
    UpdateCount();
}

SelectAllCheckBox = function()
{   
    var cbList = _getCheckBoxControl("." + uncheckedClass);
    var totalCb = cbList.length;
    
    for (var i=0; i<totalCb; i++)
    {
        if (cbList[i].id != undefined && cbList[i].id.indexOf(prefixCbName) > -1)
        {
            var itemId = cbList[i].id.substring(prefixCbName.length);
            CookieMan.Append(cookieName, itemId);

            $('#' + cbList[i].id).removeClass(uncheckedClass);
            $('#' + cbList[i].id).addClass(checkedClass);
        } 
    }    
    
    UpdateCount();
}

UpdateCount = function()
{
    var cookieValue = CookieMan.Get(cookieName);
    var totalItem = 0;
    if (cookieValue.length > 0)
        totalItem = cookieValue.split(Csn.Web.Cookie.GetMultiValueSeparator()).length;
    
    var compareList = $(".link-compare-selected")
    if (compareList != null)
    {
        compareList.html(String.format(compareTemplate, totalItem));
    }
    
    var compareList = $(".label-selected-count")
    if (compareList != null) {
        compareList.html(String.format(countTemplate, totalItem));
    }    
}
