// Garrett Murphey
// http://gmurphey.com/
// Distributed under the Creative Commons Attribution-Sharealike License
// http://creativecommons.org/licenses/by-sa/2.5/
// Modified by Bob Abeles, 10.8.2007
function distribute(container, elements, direction, className) {
	
	var containerDimen = Element.getDimensions(container);
	var element = $A($(container).getElementsByTagName(elements));
	
	if (direction == 'vertical') {
		var containerHeight = containerDimen.height;
		containerHeight -= (parseInt(Element.getStyle(container, 'padding-top')) + parseInt(Element.getStyle(container, 'padding-bottom')));
	} else {
		var containerWidth = containerDimen.width;
		containerWidth -= (parseInt(Element.getStyle(container, 'padding-left')) + parseInt(Element.getStyle(container, 'padding-right')));		
	}
	
	var elementWidth = 0;
	var elementHeight = 0;
	var i = 0;
	containerWidth -= 16;
	
	element.each(function (e) {
		if ((className == null) || ((className != null) && (Element.hasClassName(e, className)))) {
			i++;
			var elemDimen = Element.getDimensions(e);
			if (direction == 'vertical') {
				elementHeight += elemDimen.height;
				Element.setStyle(e, { marginTop: 0, marginBottom: 0 });
			} else {
				elementWidth += elemDimen.width;
				Element.setStyle(e, { marginLeft: 0, marginRight: 0 });
			}
		}
	});
	
	if (direction == 'vertical')
		var leftover = containerHeight - elementHeight;
	else
		var leftover = containerWidth - elementWidth;
	
	var marginNum = i - 1;
	var margin = Math.floor(leftover / marginNum);
	
	element.each(function (e) {
		if ((className == null) || ((className != null) && (Element.hasClassName(e, className)))) {
			i--;
			if (direction == 'vertical') {
				if (i != 0)
					Element.setStyle(e, {marginBottom: margin + 'px'});
			} else {
				if (i != 0)
					Element.setStyle(e, {marginRight: margin + 'px'});
			}
		}
	});
	
}