
// c: this of the checkbox that was clicked.
// m: boolean true if allowing multiple selections.
function ts_click(c, m)
{
    if(!m)
        ts_resetOthers(c);
        
    if(c.checked == 1){
        ts_checked(c);
    }
    else{
        ts_unchecked(c);
    }
    
    // The following function is rendered my .net code.
    ts_registeredSave();
}
function ts_resetOthers(c)
{
    var parent = c.parentNode;
    while(!parent.id || parent.id == '')
    {
        parent = parent.parentNode;
    }
    
    // Get all checkboxes.
    var inputs = parent.getElementsByTagName('input');
    
    for(var i = 0; i < inputs.length; i++)
    {
        if(inputs[i] != c)
        {
            inputs[i].checked = 0;
            inputs[i].disabled = false;
        }
    }
}
function ts_checked(c)
{
    var inputs = c.parentNode.getElementsByTagName('input');
    for(var i = 1; i < inputs.length; i++)
    {
        inputs[i].checked = 1;
        inputs[i].disabled = true;
    }
}
function ts_unchecked(c)
{
    var inputs = c.parentNode.getElementsByTagName('input');
    for(var i = 0; i < inputs.length; i++)
    {
        inputs[i].checked = 0;
        inputs[i].disabled = false;
    }
}
function ts_save(clientId, hdnId)
{
    var ul = document.getElementById(clientId);
    var hdn = document.getElementById(hdnId);
    
    if(ul && hdn)
    {
        // Clear the hiddenfield value.
        hdn.value = '';
        // Get all checkboxes.
        var inputs = ul.getElementsByTagName('input');
        
        for(var i = 0; i < inputs.length; i++)
        {
            if (inputs[i].disabled == false && inputs[i].checked == 1 )
            {
                // Append the input value to the hiddenfield.
                hdn.value = hdn.value + inputs[i].value + ',';
            } 
        }
    }
}
function ts_setup(clientId, hdnId)
{
    var ul = document.getElementById(clientId);
    var hdn = document.getElementById(hdnId);
    
    if(ul && hdn)
    {
        // Get list of ids.
        var ids = hdn.value.split(',');

        // Get all checkboxes.
        var inputs = ul.getElementsByTagName('input');
        
        for(var i = 0; i < inputs.length; i++)
        {
            if(!inputs[i].disabled)
            {
                for(var j = 0; j < ids.length; j++)
                {
                    if(ids[j] == inputs[i].value)
                    {
                        inputs[i].checked = 1;
                        ts_checked(inputs[i]);
                        break;
                    }
                }
            }
        }
    }
}

