var isNav4, isNav6, isIE4;


// Function expands all entries in the TOC.
function AllExpand() {
	var TOCNode = document.getElementById( "toc" );
	var TOCRows = new Array();
	TOCRows = TOCNode.getElementsByTagName( "div" );
	for( var i = 0 ; i < TOCRows.length ; i++ ) {
		setIdProperty( "s" + i , "display" , "block" );
	}
	var TOCImages = new Array();
	TOCImages = TOCNode.getElementsByTagName( "img" );
	for( var i = 0 ; i < TOCImages.length ; i++ ) {
		document.images["i" + i].src = "/images/locator/collapse.gif";
	}
}


// Function expands all entries in the TOC.
function AllCollapse() {
	var TOCNode = document.getElementById( "toc" );
	var TOCRows = new Array();
	TOCRows = TOCNode.getElementsByTagName( "div" );
	for( var i = 0 ; i < TOCRows.length ; i++ ) {
		setIdProperty( "s" + i , "display" , "none" );
	}
	var TOCImages = new Array();
	TOCImages = TOCNode.getElementsByTagName( "img" );
	for( var i = 0 ; i < TOCImages.length ; i++ ) {
		document.images["i" + i].src = "/images/locator/expand.gif";
	}
}


function showMenu( divNum ) {
	if( getIdProperty( "s" + divNum, "display" ) != "block" ) {
		setIdProperty("s" + divNum, "display", "block");
		document.images["i" + divNum].src = "/images/locator/collapse.gif";
	} else {
		setIdProperty("s" + divNum, "display", "none");
		document.images["i" + divNum].src = "/images/locator/expand.gif";
	}
}


/*
 * Browser version snooper; determines your browser
 * (Navigator 4, Navigator 6, or Internet Explorer 4/5)
 */
function setBrowser() {
	if( navigator.appVersion.charAt(0) == "4" ) {
		if( navigator.appName.indexOf( "Explorer" ) >= 0 ) {
			isIE4 = true;
		} else {
			isNav4 = true;
		}
	} else if( navigator.appVersion.charAt(0) > "4" ) {
		isNav6 = true;
	}
}


/*
 *
 * Given a selector string, return a style object
 * by searching through stylesheets. Return null if
 * none found
 *
 */
function getStyleBySelector( selector )
{
    if (!isNav6)
    {
        return null;
    }
    var sheetList = document.styleSheets;
    var ruleList;
    var i, j;

    /* look through stylesheets in reverse order that
       they appear in the document */
    for (i=sheetList.length-1; i >= 0; i--)
    {
        ruleList = sheetList[i].cssRules;
        for (j=0; j<ruleList.length; j++)
        {
            if (ruleList[j].type == CSSRule.STYLE_RULE &&
                ruleList[j].selectorText == selector)
            {
                return ruleList[j].style;
            }
        }
    }
    return null;
}


/*
 *
 * Given an id and a property (as strings), return
 * the given property of that id.  Navigator 6 will
 * first look for the property in a tag; if not found,
 * it will look through the stylesheet.
 *
 * Note: do not precede the id with a # -- it will be
 * appended when searching the stylesheets
 *
 */
function getIdProperty( id, property )
{
    if (isNav6)
    {
        var styleObject = document.getElementById( id );
        if (styleObject != null)
        {
            styleObject = styleObject.style;
            if (styleObject[property])
            {
                return styleObject[ property ];
            }
        }
        styleObject = getStyleBySelector( "#" + id );
        return (styleObject != null) ?
            styleObject[property] :
            null;
    }
    else if (isNav4)
    {
        return document[id][property];
    }
    else
    {
        return document.all[id].style[property];
    }
}


/*
 *
 * Given an id and a property (as strings), set
 * the given property of that id to the value provided.
 *
 * The property is set directly on the tag, not in the
 * stylesheet.
 *
 */
function setIdProperty( id , property , value ) {
	if( isNav6 ) {
		var styleObject = document.getElementById( id );
		if( styleObject != null ) {
			styleObject = styleObject.style;
			styleObject[ property ] = value;
		}
	} else if( isNav4) {
		document[id][property] = value;
	} else if( isIE4) {
		if( document.all[id] ) {
			document.all[id].style[property] = value;
		}
	}
}


function Toggle( Which ) {
	document.search.searchtype[Which].checked=true;
	document.search.searchterm.focus();
	return;
}


function VFSearch() {
	var SearchTerm = trim( document.search.searchterm.value );
	if( SearchTerm.length > 2 ) {
		return true;
	} else {
		alert( "\n\n    Please enter more in the search text.    \n\n" );
		return false;
	}
}

