// various format helpers

// display to avoid flicker
function xDisplay()
{
	var display = document.getElementsByClassName('js_display');
	display.each(
		function(obj)
		{
			obj.setStyle({display: 'block'});
		}
	);
}

// fit divs on the screen
function xFit()
{
	// arrange borders
	if (document.getElementById('content'))
	{ // regular page content
		var height = $('content').getHeight();
		var Right3Height = height - $('main-right1').getHeight() - $('main-right2').getHeight() - $('main-right4').getHeight();
		if (Right3Height > 0)
		{
			height += 'px';
			$('main-left').setStyle({height: height});
			Right3Height += 'px';
			$('main-right3').setStyle({height: Right3Height});
		}
	} else {
		if (document.getElementById('gc-content'))
		{ // messageboard content
			var height = $('gc-content').getHeight();
			height += 'px';
			$('gc-main-left').setStyle({height: height});
			$('gc-main-right').setStyle({height: height});
		}
	}
	// center things
	var fit;
	fit = document.getElementsByClassName('js_centerhor');
	fit.each(xCenterHor);
}

// class of container div
// every childs' width will be summed up
function xCenterHor(obj)
{
	var width = 0;
	var childs = obj.immediateDescendants();
	while (childs.length > 0)
	{
		child = childs.pop();
		width += child.getWidth();
	}
	var old_left = obj.getStyle('left');
	if (isNaN(old_left))
	{
		old_left = old_left.replace('px','');
	}
	var offset = ((obj.up().getWidth() - width) / 2) - old_left;
	new Effect.Move(obj, {x: offset, y: 0});
}

// class "js_external" will make the link open a new window/tab
function xExternalLinks()
{
	var externals = $$('.js_external');
	externals.each(
		function(obj)
		{
			obj.target = "_blank";
		}
		);
}

// start up code
Event.observe(window, 'load', xFit);
Event.observe(window, 'load', xExternalLinks);
