//thanks to contributors

function example()
{
	//centering a absolutely positioned 'main_wrapper' in the window if window is bigger than the main wrapper
	verticalCenterAlignedTop(getDocHeight(),590,"main_wrapper");
}

function verticalCenterAlignedTop(wrapperHeight, objHeight, objID)
{
	if (wrapperHeight>objHeight)
	{
		moveObject(objID,null,(wrapperHeight-objHeight)/2);
	}
	else
	{
		moveObject(objID,null,0);		
	}
}

function verticalCenter(wrapperHeight, objHeight, objID)
{
	moveObject(objID,null,(wrapperHeight-objHeight)/2);
}

function getDocHeight()
{
	var windowHeight;
	//Non-IE
	if( typeof( window.innerHeight ) == 'number' )
	{
		windowHeight = window.innerHeight;
		//IE 6+ in 'standards compliant mode'
	} 
	else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) )
	{
		windowHeight = document.documentElement.clientHeight; 
		//IE 4 compatible
	} 
	else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) 
	{
		windowHeight = document.body.clientHeight;
	}  
	return windowHeight;
}


function getDocWidth()
{
	return (document.width)?document.width:document.body.clientWidth;
}

function getStyleObject(objectId) {
    // cross-browser function to get an object's style object given its id
    if(document.getElementById && document.getElementById(objectId)) {
	// W3C DOM
	return document.getElementById(objectId).style;
    } else if (document.all && document.all(objectId)) {
	// MSIE 4 DOM
	return document.all(objectId).style;
    } else if (document.layers && document.layers[objectId]) {
	// NN 4 DOM.. note: this won't find nested layers
	return document.layers[objectId];
    } else {
	return false;
    }
} // getStyleObject

function changeObjectVisibility(objectId, newVisibility) {
    // get a reference to the cross-browser style object and make sure the object exists
    var styleObject = getStyleObject(objectId);
    if(styleObject) {
	styleObject.visibility = newVisibility;
	return true;
    } else {
	// we couldn't find the object, so we can't change its visibility
	return false;
    }
} // changeObjectVisibility

function moveObject(objectId, newXCoordinate, newYCoordinate) {
	//alert("Moving to: "+newXCoordinate+", "+newYCoordinate);
    // get a reference to the cross-browser style object and make sure the object exists
    var styleObject = getStyleObject(objectId);
    if(styleObject)
	{
		if (newXCoordinate!=null) styleObject.left = newXCoordinate+"px";
		if (newYCoordinate!=null) styleObject.top = newYCoordinate+"px";
		return true;
    } 
	else 
	{
		// we couldn't find the object, so we can't very well move it
		return false;
    }
} // moveObject


