var bodyElement, bgElement, contentElement, viewport, resizeTimeout;

function doOnload()
{
	YUI().use('node', function(Y)
	{
		bodyElement 	= Y.one(document.body);
		bgElement		= Y.one('#bg');
		contentElement	= Y.one('#content');
	});
}

function doOnResize()
{
	if (resizeTimeout)
		window.clearTimeout(resizeTimeout);
	
	resizeTimeout = window.setTimeout(_doOnResize, 60);
}

function _doOnResize()
{
	YUI().use('node', function(Y)
	{
		viewport		= {width:bodyElement.get('winWidth'), height:bodyElement.get('winHeight')};
		var prio		= viewport.width / viewport.height < 1.33 ? 'h' : 'w';
		var corrected	= prio === 'w' ? [viewport.width, Math.round(viewport.width * 0.75)] : [Math.round(viewport.height * 1.33), viewport.height];

		bgElement.setStyle('width', corrected[0] + 'px');
		bgElement.setStyle('height', corrected[1] + 'px');
		
		if (prio === 'w')
		{
			bgElement.setStyle('top', Math.round((viewport.height - corrected[1]) / 2) + 'px');
			bgElement.setStyle('left', '0px');
		}
		else
		{
			bgElement.setStyle('top', '0px');
			bgElement.setStyle('left', Math.round((viewport.width - corrected[0] ) / 2) + 'px');
		}
		
		positionContentElement(Y);
	});
}

function positionContentElement(Y)
{
	if (Y)
	{
		var topValue		= contentElement.getStyle('top');
		var clientHeight	= contentElement.get('clientHeight');

		if (Y.UA.ie > 0 && Y.UA.ie < 7)
			contentElement.setStyle('left', Math.round((viewport.width - contentElement.get('clientWidth')) / 2) + 'px');
		
		if (clientHeight < (viewport.height - 110))
			contentElement.setStyle('top', Math.max(100, Math.round((viewport.height - clientHeight) / 2)) + 'px');
		else if (topValue && !(topValue === '100px'))
			contentElement.setStyle('top', '100px');

	}
	else
	{
		YUI().use('node', function(Y)
		{
			positionContentElement(Y);
		});
	}
}

window.onload	= doOnload;
window.onresize	= doOnResize;