﻿
function AddClass(node,name)
{
    node.className = node.className + " " + name + " ";
}

function RemoveClass(node,name)
{
    var i = node.className.indexOf( " " + name + " ");
    var newName = "";
    if (i > 0)
    {
        newName = node.className.substring(0,i);
    }
    if (i > -1)
    {
        i += name.length;
        i += 2;
        newName += node.className.substring(i);
    }

    node.className = newName;
}

// iterates through all rows in the given table, looking for a CollasablePanelExtender,
// and expands or collapses it.
function ExpandCollapseTableRows(table,expand,extenderCell,suffix)
{
    for (var i = 0; i < table.rows.length; i ++) 
    { 
        var row = table.rows[i]; 
        var cell = row.cells[extenderCell]; 
        if (cell.tagName.toLowerCase() == 'td') 
        { 
            var input = cell.getElementsByTagName('input'); 
            if (input.length > 0) 
            { 
                input = input[0]; 
                var objName = input.name.substring(0,input.name.length - suffix.length) + 'ChildRow'; 
                objName = objName.split('$').join('_'); 
                var panel = $object(objName); 
                if (panel)
                {
                    var behaviors = panel.get_behaviors(); 
                    if (expand)
                    {
                        behaviors[0]._doOpen(); 
                    }
                    else
                    {
                        behaviors[0]._doClose();
                    }
                }
            } 
        }
    }
    return false;
}

function GetElementsByClassName(name,root)
{
    if (root == null)
    {
        root = document.body;
    }
        
    var elements = new Array();
        
    for (var node = root.firstChild; node != null; node = node.nextSibling)
    {
        var className = node.className;
        if (className != null && className.length > 0)    
        {
            var classes = className.split(" ");
            for (var i = 0; i < classes.length; i ++)
            {
                if (classes[i] == name)
                {
                    elements.push(node);
                }
            } 
        }
        if (node.firstChild != null)
        {
            var childElements = GetElementsByClassName(name,node);
            elements = elements.concat(childElements);
        }
    }
    return elements;
}
