// return a reference to the object whose name is given
function get_element_by_name( object_name )
	{
	var element;

	if ( document.getElementById )
		element = document.getElementById( object_name );
	else if ( document.layers )
		element = document.layers[ object_name ];
	else if ( document.all )
		element = document.all[ object_name ];
	else element = null;

	return element;
	}

function set_visibility( element, visible )
	{
	var element;

	if ( document.getElementById )				// DOM Layer 1
		element.style.visibility = ( visible ? 'visible' : 'hidden' );
	else if ( document.layers )				// Old Netscape
		element.visibility = ( visible ? 'show' : 'hide' );
	else if ( document.all )				// Old IE
		element.style.visibility = ( visible ? 'visible' : 'hidden' );
	}

function set_visibility_by_name( object_name, visible )
	{
	if ( document.getElementById )				// DOM Layer 1
		{
		var element = document.getElementById( object_name );
		element.style.visibility = ( visible ? 'visible' : 'hidden' );
		}
	else if ( document.layers )				// Old Netscape
		document.layers[ object_name ].visibility = ( visible ? 'show' : 'hide' );
	else if ( document.all )				// Old IE
		document.all[ object_name ].style.visibility = ( visible ? 'visible' : 'hidden' );
	}

// Andrew Clover says finding out how the document is actually rendered is
// outside the scope of the DOM model. Jerk.
function get_height( element )
	{
	var height;

	if ( ( height = element.offsetHeight ) != null )
		return( height );
	else if ( ( height = element.style.pixelHeight ) != null )
		return( height );
	else if ( document.layers )
		return( element.clip.height );
	else if ( document.all )
		return( element.style.offsetHeight );
	}

function get_height_by_name( object_name )
	{
	var element = get_element_by_name( object_name );

	return( get_height( element ) );
	}

function set_position( element, x, y )
	{
	if ( document.getElementById )				// DOM Layer 1
		{
		element.style.left = x;
		element.style.top = y;
		}
	else if ( document.layers )				// Old Netscape
		element.moveTo( x, y );
	else if ( document.all )				// Old IE
		{
		element.style.left = x;
		element.style.top = y;
		}
	}

function set_position_by_name( object_name, x, y )
	{
	if ( document.getElementById )				// DOM Layer 1
		{
		element = document.getElementById( object_name );
		element.style.left = x;
		element.style.top = y;
		}
	else if ( document.layers )				// Old Netscape
		document.layers[ object_name ].moveTo( x, y );
	else if ( document.all )				// Old IE
		{
		document.all[ object_name ].style.left = x;
		document.all[ object_name ].style.top = y;
		}
	}

function get_top( element )
	{
	if ( document.getElementById )				// DOM Layer 1
		{
		return( element.style.top );
		}
	else if ( document.layers )				// Old Netscape
		return( element.pageY );
	else if ( document.all )				// Old IE
		return( element.style.top );
	}

function get_top_by_name( object_name )
	{
	if ( document.getElementById )				// DOM Layer 1
		{
		element = document.getElementById( object_name );
		return( element.style.top );
		}
	else if ( document.layers )				// Old Netscape
		return( document.layers[ object_name ].pageY );
	else if ( document.all )				// Old IE
		return( document.all[ object_name ].style.top );
	}

function get_left( element )
	{
	if ( document.getElementById )				// DOM Layer 1
		return( element.style.left );
	else if ( document.layers )				// Old Netscape
		return( element.pageX );
	else if ( document.all )				// Old IE
		return( element.style.left );
	}

function get_left_by_name( object_name )
	{
	if ( document.getElementById )				// DOM Layer 1
		{
		element = document.getElementById( object_name );
		return( element.style.left );
		}
	else if ( document.layers )				// Old Netscape
		return( document.layers[ object_name ].pageX );
	else if ( document.all )				// Old IE
		return( document.all[ object_name ].style.left );
	}

function set_top( element, y )
	{
	if ( document.getElementById )				// DOM Layer 1
		element.style.top = y;
	else if ( document.layers )				// Old Netscape
		element.moveTo( get_left( object_name ), y );
	else if ( document.all )				// Old IE
		element.style.top = y;
	}

function set_top_by_name( object_name, y )
	{
	if ( document.getElementById )				// DOM Layer 1
		{
		element = document.getElementById( object_name );
		element.style.top = y;
		}
	else if ( document.layers )				// Old Netscape
		document.layers[ object_name ].moveTo( get_left( element ), y );
	else if ( document.all )				// Old IE
		document.all[ object_name ].style.top = y;
	}

function set_left( element, x )
	{
	if ( document.getElementById )				// DOM Layer 1
		element.style.left = x;
	else if ( document.layers )				// Old Netscape
		element.moveTo( x, get_top( element ));
	else if ( document.all )				// Old IE
		element.style.left = x;
	}

function set_left_by_name( object_name, x )
	{
	if ( document.getElementById )				// DOM Layer 1
		{
		element = document.getElementById( object_name );
		element.style.left = x;
		}
	else if ( document.layers )				// Old Netscape
		document.layers[ object_name ].moveTo( x, get_top( object_name ));
	else if ( document.all )				// Old IE
		document.all[ object_name ].style.left = x;
	}
