var CookieMan = Csn.Web.Cookie;
//CookieMan.MultiValueSeparator = "+";

_getCheckBoxControl = function(mode)
{
    return Csn.$property("class", mode, "DIV");
}

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)
            {
                Sys.UI.DomElement.removeCssClass(cbList[i], uncheckedClass);
                Sys.UI.DomElement.addCssClass(cbList[i], checkedClass);
            }
        }
    }
    
    UpdateCount();
}

ToggleCheckBox = function(sender, valueToAdd)
{
    var cookieValue = CookieMan.Get(cookieName);
    if (cookieValue.indexOf(valueToAdd) > -1)
    {
        CookieMan.RemoveValue(cookieName, valueToAdd);
        Sys.UI.DomElement.removeCssClass(sender, checkedClass);
        Sys.UI.DomElement.addCssClass(sender, uncheckedClass);
    }
    else
    {
        CookieMan.Append(cookieName, valueToAdd);
        Sys.UI.DomElement.removeCssClass(sender, uncheckedClass);
        Sys.UI.DomElement.addCssClass(sender, checkedClass);
    }
    
    UpdateCount();
}

ClearAllCheckBox = function()
{
    CookieMan.Remove(cookieName);
    
    var cbList = _getCheckBoxControl(checkedClass);
    var totalCb = cbList.length;
    
    for (var i=0; i<totalCb; i++)
    {
        Sys.UI.DomElement.removeCssClass(cbList[i], checkedClass);
        Sys.UI.DomElement.addCssClass(cbList[i], 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);

            Sys.UI.DomElement.removeCssClass(cbList[i], uncheckedClass);
            Sys.UI.DomElement.addCssClass(cbList[i], 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 = Csn.$name("compare", "A");
    if (compareList != null)
    {
        for (var x=0; x<compareList.length; x++)
        {
            var obj = compareList[x];
            obj.innerHTML = String.format(compareTemplate, totalItem);
        }
    }    
}