﻿function toggleSelectBox(id)
{
    var obj = $('selectBox' + id);
    if (obj.style.display == 'none')
    {
        showSelectBox(id, true);
    }
    else
    {
        showSelectBox(id, false);
    }
}

function showSelectBox(id, show)
{
    if (show)
    {
        new Effect.Appear($('selectBox' + id), {duration:0.3});
    }
    else
    {
        selectBoxUpdateValue(id);
        new Effect.Fade($('selectBox' + id), {duration:0.3});
    }
}

function selectBoxCheckAll(id)
{
    var checkboxes;
    var obj;
    eval('checkboxes = sitesCheckboxes' + id +';');
    
    var allSelected = true;
    for (i=0; i<checkboxes.length; i++)
    {
        obj = $(checkboxes[i]);
        if (!obj.checked)
        {
            allSelected = false;
        }
    }
    
    for (i=0; i<checkboxes.length; i++)
    {
        obj = $(checkboxes[i]);
        if (allSelected)
        {
            obj.checked = false;
        }
        else
        {
            obj.checked = true;
        }        
    }
    
    if (!allSelected)
    {
        showSelectBox(id, false);
    }
}

function selectBoxGetValue(id)
{
    var result = '';
    var notAll = false;
    var checkboxes;
    var obj;
    eval('checkboxes = sitesCheckboxes' + id +';');
    
    for (i=0; i<checkboxes.length; i++)
    {
        obj = $(checkboxes[i]);
        notAll = notAll || (!obj.checked);
        
        if (obj.checked)
        {
            result += obj.value + ',';
        }
    }
    
    result = notAll ? result : '';
    
    if (result.length > 0)
    {
        result = result.substring(0, result.length - 1);
    }
    
    return result;
}

function selectBoxUpdateValue(id)
{
    var value = selectBoxGetValue(id);
    value = value.replace(',', ', ');
    var obj = $('selectBoxCaption' + id);
    
    if (value == '')
    {
        value = 'All';
    }
    
    obj.innerHTML = value;
    
    //var minWidthStr = obj.style.minWidth;
    //minWidthStr = minWidthStr.substring(0, minWidthStr.length - 2);
    
    var minWidthStr = obj.attributes["minWidth"].value;    
    var minWidth = eval(minWidthStr);
    
    while (obj.offsetWidth > minWidth)
    {
        value = value.substring(0, value.length - 1);
        obj.innerHTML = value + '...';
    }
}