function AddLoadEvent( func ) {
	var oldonload = window.onload;
	if ( typeof window.onload != 'function' ) {
		window.onload = func;
	} else {
		window.onload = function() {
			oldonload();
			func();
		}
	}
}

function EnableHover() { 
   if ( document.all && document.getElementById && document.getElementsByTagName && document.getElementById( "mainNav" ) ) {
		var nodes = document.getElementById( "mainNav" ).getElementsByTagName( "LI" );
		for ( i = 0; i < nodes.length; i++ ) {
			var node = nodes[i];
			node.onmouseover = function() {
				this.className += " sfhover";
			}
			node.onmouseout = function() {
				this.className = this.className.replace( " sfhover", "" );
			}
		}
	}
}

function EnableHover2() {
   if ( document.all && document.getElementById && document.getElementsByTagName && document.getElementById( "divisionNav" )) {
		var nodes = document.getElementById( "divisionNav" ).getElementsByTagName( "LI" );
		for ( i = 0; i < nodes.length; i++ ) {
			var node = nodes[i];
			node.onmouseover = function() {
				this.className += " sfhover";
			}
			node.onmouseout = function() {
				this.className = this.className.replace( " sfhover", "" );
			}
		}
	}
}

function EnableHover3() {
	if ( document.all && document.getElementById && document.getElementsByTagName && document.getElementById( "govtdivisionNav" ) ) {
		var nodes = document.getElementById( "govtdivisionNav" ).getElementsByTagName( "LI" );
		for ( i = 0; i < nodes.length; i++ ) {
			var node = nodes[i];
			node.onmouseover = function() {
				this.className += " sfhover";
			}
			node.onmouseout = function() {
				this.className = this.className.replace( " sfhover", "" );
			}
		}
	}
}

var rollovers = new Array();

function InitImages() {
	if ( document.getElementsByTagName && document.getElementById ) {
		imgs = document.getElementsByTagName('img');
		for ( i = 0; i < imgs.length; i++ ) {
			var img = imgs[i];
			if (img.className == 'rollover') {
				var rolloverId = img.id + '_on';
				rollovers[img.id] = new Image();
				rollovers[img.id].src = img.src;
				rollovers[rolloverId] = new Image();
				rollovers[rolloverId].src = img.src.replace(".gif", "_over.gif");

				img.onmouseover = function() {
					var rolloverId = this.id + "_on";
					this.src = rollovers[rolloverId].src;
				}
				img.onmouseout = function() {
					this.src = rollovers[this.id].src;
				}
			}
		}
	}
}

function InitInputs() {
	if ( document.getElementsByTagName && document.getElementById ) {
		inputs = document.getElementsByTagName('input');
		for ( i = 0; i < inputs.length; i++ ) {
			var input = inputs[i];
			if (input.className == 'rollover') {
				var rolloverId = input.id + '_on';
				rollovers[input.id] = new Image();
				rollovers[input.id].src = input.src;
				rollovers[rolloverId] = new Image();
				rollovers[rolloverId].src = input.src.replace(".gif", "_over.gif");

				input.onmouseover = function() {
					var rolloverId = this.id + "_on";
					this.src = rollovers[rolloverId].src;
				}
				input.onmouseout = function() {
					this.src = rollovers[this.id].src;
				}
			}
		}
	}
}

/********************************************************
BEGIN PRODUCT PAGE TAB FUNCTIONS
********************************************************/

CSS = {
    // Adds a class to an element.
    AddClass: function (e, c) {
        if (!e.className.match(new RegExp("\\b" + c + "\\b", "i")))
            e.className += (e.className ? " " : "") + c;
    },

    // Removes a class from an element.
    RemoveClass: function (e, c) {
        e.className = e.className.replace(new RegExp(" \\b" + c + "\\b|\\b" + c + "\\b ?", "gi"), "");
    }
};

// Functions for handling tabs.
Tabs = {
    // Changes to the tab with the specified ID.
    GoTo: function (contentId, skipReplace) {
        // This variable will be true if a tab for the specified
        // content ID was found.
        var foundTab = false;

        // Get the TOC element.
        var toc = document.getElementById("toc");
        if (toc) {
            var lis = toc.getElementsByTagName("li");
            for (var j = 0; j < lis.length; j++) {
                var li = lis[j];

                // Give the current tab link the class "current" and
                // remove the class from any other TOC links.
                var anchors = li.getElementsByTagName("a");
                for (var k = 0; k < anchors.length; k++) {
                    if (anchors[k].hash == "#" + contentId) {
                        CSS.AddClass(li, "current");
                        foundTab = true;
                        break;
                    } else {
                        CSS.RemoveClass(li, "current");
                    }
                }
            }
        }

        // Show the content with the specified ID.
        var divsToHide = [];
        var divs = document.getElementsByTagName("div");
        for (var i = 0; i < divs.length; i++) {
            var div = divs[i];

            if (div.className.match(/\bcontent\b/i)) {
                if (div.id == "_" + contentId)
                    div.style.display = "block";
                else
                    divsToHide.push(div);
            }
        }

        // Hide the other content boxes.
        for (var i = 0; i < divsToHide.length; i++)
            divsToHide[i].style.display = "none";

        // Change the address bar.
        // DH: Don't change the window location: causes the page to navigate away
        //if (!skipReplace) window.location.replace("#" + contentId);
    },

    OnClickHandler: function (e) {
        // Stop the event (to stop it from scrolling or
        // making an entry in the history).
        if (!e) e = window.event;
        if (e.preventDefault) e.preventDefault(); else e.returnValue = false;

        // Get the name of the anchor of the link that was clicked.
        Tabs.GoTo(this.hash.substring(1));
    },

    Init: function () {
        if (!document.getElementsByTagName) return;
        
        if (!document.getElementById("product-info")) return;

        // Attach an onclick event to all the anchor links on the page.
        var anchors = document.getElementById("toc").getElementsByTagName("a");
        for (var i = 0; i < anchors.length; i++) {
            var a = anchors[i];
            if (a.hash) a.onclick = Tabs.OnClickHandler;
        }

        var contentId;
        if (window.location.hash) contentId = window.location.hash.substring(1);

        var divs = document.getElementsByTagName("div");
        for (var i = 0; i < divs.length; i++) {
            var div = divs[i];

            if (div.className.match(/\bcontent\b/i)) {
                if (!contentId) contentId = div.id;
                div.id = "_" + div.id;
            }
        }

        if (contentId) Tabs.GoTo(contentId, true);
    }
};
/********************************************************
END PRODUCT PAGE TAB FUNCTIONS
********************************************************/

AddLoadEvent( Tabs.Init );   // Initialize function for the product page. Must be first called.
AddLoadEvent( EnableHover );
AddLoadEvent( EnableHover2 );
AddLoadEvent( EnableHover3 );
AddLoadEvent( InitImages );
AddLoadEvent( InitInputs );
<!--[if lt IE 7]>AddLoadEvent( sfHover);<![endif]-->


