window.onload=rollup;

function rollout(objMenuitem, objEvent)
{
    var iKeyCode;

    // Check if from a keyboard - non IE, but
    // irrelevant as tab doesn't trigger the 
    // keypress event in IE
    if (objEvent && objEvent.type == 'keypress')
    {
        if (objEvent.keyCode)
            iKeyCode = objEvent.keyCode;
        else if (objEvent.which)
            iKeyCode = objEvent.which;

        // If it's not the enter key or space key, 
        // pass control back to the browser
        if (iKeyCode != 13 && iKeyCode != 32)
            return true;
    }

    // Work out what we need to do
    if (objMenuitem.nextSibling.style.display == 'block')
        var strDisplay = 'none'
    else
        var strDisplay = 'block';

    // Close any nested lists that are open
    var objMenu = document.getElementById('mainnav');
    var objNested = objMenu.getElementsByTagName('ul');

    for (var i=0; i<objNested.length; i++)
        if (objNested[i].style.display == 'block')
            objNested[i].style.display = 'none';

    objMenuitem.nextSibling.style.display = strDisplay;
    
    // Keep any parent menus for this item open
    while (objMenuitem.parentNode.parentNode.id != 'mainnav')
    {
        objMenuitem = objMenuitem.parentNode.parentNode;
        objMenuitem.style.display = 'block';
    }

    // Stop the browser requesting the link
    return false;
}

function rollup()
{
    var bRollup, objLinks, objNode, objAnchor;

    // Check we're working with a DOM compliant browser
    if (document.getElementById && document.createElement)
    {
        var strLocation = window.location;
        
        var strStringLocation = String(strLocation);
        
        var intPos1 = parseInt(strStringLocation.indexOf("/",25));
        var intPos2 = parseInt(strStringLocation.indexOf("/",26));
               
        var strParentLoc = strStringLocation.substring(intPos1,intPos2);
        
        //alert(strStringLocation);
        
        var objMenu = document.getElementById('mainnav');
        
        var objNested = objMenu.getElementsByTagName('ul');

        // Hide each of the nested unordered list
        for (var i=0; i<objNested.length; i++)
        {
            // Only hide, if the current location is not found in the list
            bRollup = true;
            objLinks = objNested[i].getElementsByTagName('a');

            for (var j=0; j<objLinks.length; j++)
            {
            	var strLinkhref = String(objLinks[j].href);
            	    
		       	if (!(strStringLocation == 'http://www.assembly.nl.ca/') && !(strStringLocation == 'http://www.assembly.nl.ca/default.htm') && !(strStringLocation == 'http://assembly.nl.ca/') && !(strStringLocation == 'http://assembly.nl.ca/default.htm') && !(strStringLocation == 'http://www.assembly.nl.ca/pubinfo/annual_reports/default.htm') && !(strStringLocation == 'http://assembly.nl.ca/pubinfo/annual_reports/default.htm') && !(strStringLocation == 'http://assembly.nl.ca/pubinfo/directives/default.htm') && !(strStringLocation == 'http://assembly.nl.ca/pubinfo/ruleamendments/default.htm') && !(strStringLocation == 'http://10.29.2.145/dbtw-wpd/catalogue.htm') && !(strStringLocation == 'http://www.assembly.nl.ca/defaultSEARCH.htm'))
		       	{
	                if (objLinks[j].href == strLocation)
	                {
	                    bRollup = false;
	
	                    // Added by John Hunter
	                    // remove link for current page
	                    objNode = objLinks[j];
	                    strContent = objNode.firstChild.data;
	                    var objCurrentPage = document.createElement('strong');
	                    objCurrentPage.appendChild(document.createTextNode(strContent));
	                    objNode.parentNode.replaceChild(objCurrentPage, objNode);
	
	                    // Add an id so we can keep the parents open
	                    objCurrentPage.id = 'jsKeepOpen';
	                }
	                else if (strLinkhref.match(strParentLoc))
	                {
	                	bRollup = false;
	                	
	                	objNode = objLinks[j].parentNode.parentNode.parentNode;
						var objCurrentPage = objNode;
						objCurrentPage.id = 'jsKeepOpen';
	                }
	            }
            }

            if (bRollup == true)
                objNested[i].style.display = 'none';
            else
                objNested[i].style.display = 'block';

            // Place the top-level text in an anchor tag
/*			objNode = objNested[i].parentNode;
			
			strContent = objNode.firstChild.data;
			
			objAnchor = document.createElement('a');
			objAnchor.href = '#';
			objAnchor.onclick = function(event){return rollout(this, event);}
			objAnchor.onkeypress = function(event){return rollout(this, event);}
			objAnchor.appendChild(document.createTextNode(strContent));
			
			objNode.replaceChild(objAnchor, objNode.firstChild);
*/			}

        // Keep any parent menus for the current item
        if (document.getElementById('jsKeepOpen'))
        {
            var objKeepOpen = document.getElementById('jsKeepOpen');
            while (objKeepOpen.parentNode.id != 'mainnav')
            {
                objKeepOpen = objKeepOpen.parentNode;
                objKeepOpen.style.display = 'block';
            }
        }
    }
}
