function initialise()
{
	// Bells and whistles only for browsers that fully support the DOM:
	if (!document.getElementById || !document.getElementsByTagName || !document.createElement || !document.createTextNode)
		return;

	// Restructure the basic document:
	buildPage.initialise();

	// Apply enhancements:
	if (document.getElementById('navigationList')) setCurrentNavigation(document.getElementById('navigationList'));

	if (document.links) enhanceLinks.setExternal(document.links);

	if (document.images) enhanceImages.wrapImages(document.images);

	// Check for a form requiring validation:
	if (document.getElementById('required'))
	{
		var pageForm = document.getElementsByTagName('form')[0];
		var fields = document.getElementById('required').value.split(',');
		pageForm.onsubmit = function() { handleForm.doValidation(fields); return false; }
	}

	var divs = document.getElementsByTagName('div');
	var bookDivs = new Array();

	if (divs)
	{
		for (var i = 0; i < divs.length; i++)
			if (/recommended/.test(divs[i].className))
				showHide.initialise(divs[i].getElementsByTagName('dl')[0]);
	}
}

window.onload = initialise;