//---------------------------------------------------------------------
// NEW STUFF
//---------------------------------------------------------------------

    //
    // Search the query string of the current page for a parameter
    // with a given name. If found, return the corresponding value.
    // Otherwise, return null.
    //
    function QueryParamValue(key)
    {
        // Use case-insensitive comparison.
        key = key.toLowerCase();

        // Extract the query string (if any) from the current URL.
        var query = window.location.search.substring(1);

        //
        // Examine each parameter within the query string.
        //

        var params = query.split('&');

        //alert('QueryParamValue: got ' + params.length + ' params.');

        for (var i = 0; i < params.length; i++)
        {
            var name, value;
            var pos = params[i].indexOf('=');

            // Found "name=value"?
            if (pos > 0)
            {
                name = params[i].substring(0, pos);
                value = params[i].substring(pos + 1);
            }

            // Found just "name".
            else
            {
                name = params[i];
                value = '';
            }

            //alert('QueryParamValue: ' + name + '=[' + value + ']');

            // Found the key for which we're looking?
            if (name.toLowerCase() == key)
                return value;
        }

        return null;
    } 

    //
    // Search a list of HTML elements for one having text that
    // begins with a specified prefix.
    //
    function FindElementByPrefix(prefix, elements)
    {
        // For comparison, expand embedded escapes and convert
        // to lower case for case-insensitive comparison.
        var elementNamePrefix = decodeURI(prefix).toLowerCase();
        var prefixLen = elementNamePrefix.length;
        //alert('looking for [' + elementNamePrefix + '] = ' + prefixLen + ' chars.');

        for (var e = 0; e < elements.length; e++)
        {
            var element = elements[e];
            var text = decodeURI(element.innerHTML).toLowerCase();
            if (text.substring(0, prefixLen) == elementNamePrefix)
                return element;
        }

        // Didn't find it.
        return null;
    }


    //
    // Get a list of domCollapse expandable elements.
    //
    function dc_ExpandableElements()
    {
        // Currently, our expandable items are all <H2> elements, and
        // all <H2> elements are expandable items.
        return document.getElementsByTagName('h2');
    }

    //
    // Expand a DOM element.
    //
    // The element is assumed to be a domCollapse element (see
    // "domcollapse.js").  As such, it's expanded by assigning
    // the class 'expanded.' See domCollapse docs. for details.
    //
    // Note that this technique works only while a document is
    // being loaded.
    //
    function dc_SetExpanded(element)
    {
        element.className = 'expanded';
    }


    //
    // Expand a section having text that begins with a specified prefix.
    //
    function dc_FindAndSetExpanded(prefix)
    {
        var element = FindElementByPrefix(prefix, dc_ExpandableElements());
        if (element != null)
            dc_SetExpanded(element);
    }


    //
    // Dynamically expand all domCollapse elements. To do this, we must
    // synthesize a "click" event to trigger the domCollapse event handler.
    //
    function dc_ExpandAllElements(expand)
    {
        var elements = dc_ExpandableElements();

        // Determine if this is Internet Explorer.
        var isIE = (window.event != null);

        // Create the event object we'll fire.
        var click;
        if (isIE)
        {
            click = document.createEventObject();
            click.type = 'click';
        }
        else
        {
            click = document.createEvent('MouseEvents');
            click.initEvent('click', true, true);
        }

        for (var e = 0; e < elements.length; e++)
        {
            var element = elements[e];

            // Use the domCollapse object (see "domcollapse.js")
            // to determine if the element is already in the
            // required state.
            if (dc.cssjs('check', element, dc.triggeropen) != expand)
            {
                // Need to change state. Fire the event.
                if (isIE)
                    element.fireEvent('onclick', click);
                else
                    element.dispatchEvent(click);
            }
        }
    }


    function OnPageLoad()
    {
        //
        // John: ENABLE THIS IN THE REAL PAGE. (I don't have the necessary files.)
        //
        //MM_preloadImages('../images/icon_home_b.gif');

        // Look for a parameter named "Expand" naming a section to be
        // initially expanded.
        var elementNamePrefix = QueryParamValue('Expand');
        if (elementNamePrefix != null)
            dc_FindAndSetExpanded(elementNamePrefix);
    }

//---------------------------------------------------------------------
// END NEW STUFF
//----------------------------------------------------------------