/**
 * Advanced Rico Functions
 * Author: Baris Akdag
 * Works with Rico 2.0 RC1
 */
function RicoLiveGridGetSelectedCheckboxes(LiveGridName, Column)
{
    var Elem = 0;
    var Result = new Array;
    
    while ($(LiveGridName+'_chkbox_'+Column+'_'+Elem))
    {
        if ($(LiveGridName+'_chkbox_'+Column+'_'+Elem).checked == true)
        {
            Result.push($F(LiveGridName+'_chkbox_'+Column+'_'+Column));
        }

        Elem++;
    }

    return Result;
}

function RicoLiveGridSaveCheckboxes(Obj, Checkboxes)
{
    if (Obj.checked)
    {
        Checkboxes[Obj.value] = Obj.value;
    }
    else
    {
        Checkboxes[Obj.value] = undefined;
    }
}

function RicoLiveGridRestoreCheckboxes(LiveGridName, Checkboxes)
{
    var Column = 0;
    var Elem = 0;
    
    for (Key in Checkboxes)
    {
        if (typeof Checkboxes[Key] == 'string')
        {
            Elem = 0;
            while ($(LiveGridName+'_chkbox_'+Column+'_'+Elem))
            {
                if (typeof Checkboxes[Key] != 'function' && $(LiveGridName+'_chkbox_'+Column+'_'+Elem).value == Key)
                {
                    $(LiveGridName+'_chkbox_'+Column+'_'+Elem).checked = true;
                    break;
                }

                Elem++;
            }
        }
    }
}

function RicoLiveGridFetchTagValueFromResponseXML(Buffer, Node)
{
    if (Buffer.getResponseXML().getElementsByTagName(Node).length != 0)
    {
        return Buffer.getResponseXML().getElementsByTagName(Node).item(0).firstChild.nodeValue;
    }
    
    return "";
}

function RicoLiveGridFetchTotalCount(Buffer)
{
    return RicoLiveGridFetchTagValueFromResponseXML(Buffer, 'rowcount');
}

