function matchHeight(parent, className, tagName, padding) {
	
	var elements = getElementsByClassName(className, tagName, parent);
	
	var maxHeight = 0;
	
	for(x=0; x<elements.length; x++) {		
		var eleHeight = getElementHeight(elements[x]);
		
		if(eleHeight > maxHeight) { maxHeight = eleHeight; }
	}
	
//	alert(className + ': ' + maxHeight);
	
	for(x=0; x<elements.length; x++) {		
		elements[x].style.height=(maxHeight-padding)+'px'; 
	}
}


function verticalAlign(parent, element) 
{
	elements = parent.getElementsByTagName(element);
	
	var whiteSpace = getElementHeight(parent) - getElementHeight(elements[0]);
	
	if(whiteSpace > 0) {
		whiteSpace = whiteSpace / 2;
		elements[0].style.paddingTop = whiteSpace + 'px';
	}
}


function getElementsByClassName(className, tag, elm){
	var testClass = new RegExp("(^|\\s)" + className + "(\\s|$)");
	var tag = tag || "*";
	var elm = elm || document;
	var elements = (tag == "*" && elm.all)? elm.all : elm.getElementsByTagName(tag);
	var returnElements = [];
	var current;
	var length = elements.length;
	for(var i=0; i<length; i++){
		current = elements[i];
		if(testClass.test(current.className)){
			returnElements.push(current);
		}
	}
	return returnElements;
}


function getElementHeight(ele) {
	
	if(ele.offsetHeight) {
		return ele.offsetHeight;
	}
	else if(ele.style.height) {
		return ele.style.height;
	}
	else if(ele.style.pixelHeight) {
		return ele.style.pixelHeight;
	}
}


function matchHeights_home()
{
	var parent = document.getElementById('products_grid');
	matchHeight(parent, 'image', 'div', 0);
	matchHeight(parent, 'product_title', 'h3', 2);
	
	var elements = getElementsByClassName('image', 'div', parent);
	for(x=0; x<elements.length; x++) {		
		verticalAlign(elements[x], 'img');
	}
}

function matchHeights_category()
{
	var parent = document.getElementById('products_grid');
	var lists = getElementsByClassName('grid_row', 'li', parent);
	
	for(i=0; i<lists.length; i++) {
		matchHeight(lists[i], 'product_title', 'h2', 9);
		matchHeight(lists[i], 'image', 'div', 0);
		
		var elements = getElementsByClassName('image', 'div', lists[i]);
		for(x=0; x<elements.length; x++) {		
			verticalAlign(elements[x], 'img');
		}
	}
}