function init(ulId, expandImage, collapseImage)
{
    var allTables = document.getElementsByTagName("table");
    var length = allTables.length;
    
    for (var i = 0; i < length; i++)
    {
        var table = allTables.item(i);
        var tableId = table.id;
        // Check for the naming convention used for this control.
        if (tableId != 'undefined' && tableId.indexOf("Ephibian") >= 0)
        {
            var display = getCookie(tableId);
            if (display == null)
                display = "none";
            expand_or_collapse(table, display, expandImage, collapseImage);
        }
    }
    
    var ul = document.getElementById(ulId).firstChild;
    ul.style.display = ""; // Initially hidden to help dissolve state for EphibianPullDownMenu
}
function toggle_list_item(tableId, expandImage, collapseImage)
{
    var table = document.getElementById(tableId);
    
    // If a Parent Node
    if (table.id.indexOf("node") > 0)
    {
        var ul = table.nextSibling;//.nextSibling;
        var display = ul.style.display;
        display = (display == "") ? "none" : "";
                
        expand_or_collapse(table, display, expandImage, collapseImage);
        setCookie(table.id, display);
    }
}
function expand_or_collapse(table, display, expandImage, collapseImage)
{
    // If a Parent Node
    if (table.id.indexOf("node") > 0)
    {
        var img = document.getElementById(table.id.replace("node", "img"));
        var ul = table.nextSibling;//.nextSibling;
        
        if (img != null && img.tagName.toLowerCase() == "img" && ul != null && ul.tagName.toLowerCase() == "ul")
        {
            var bExpand = (display == "");
            
            // Toggle Image
            var src = img.src;
            
            img.src = (bExpand) ? src.replace(expandImage, collapseImage) : src.replace(collapseImage, expandImage);
                        
            // Toggle Children
            ul.style.display = (bExpand) ? "" : "none";
        }
    }
}
function do_onmouseover(tableId, hoverClass)
{
    var table = document.getElementById(tableId);
    table.className = hoverClass;
}
function do_onmouseout(tableId, tableClass)
{
    var table = document.getElementById(tableId);
    table.className = tableClass;
}
function getCookie(c_name)
{
    var c_start, c_end;
    
    if (document.cookie.length > 0)
    {
        c_start = document.cookie.indexOf(c_name + "=");
        if (c_start != -1)
        { 
            c_start = c_start + c_name.length + 1; 
            c_end = document.cookie.indexOf(";",c_start);
            if (c_end == -1)
                c_end = document.cookie.length;
            return unescape(document.cookie.substring(c_start, c_end));
        } 
    }
    return null;
}
// Save for 30 days.
function setCookie(c_name,value/*,expiredays*/)
{
    var exdate = new Date();
    expiredays = 30;
    exdate.setDate(exdate.getDate() + expiredays);
    document.cookie=c_name+ "=" +escape(value)+
    ((expiredays==null) ? "" : ";expires="+exdate.toGMTString() + "; path=/");
}
