/*
	Written by Jonathan Snook, http://www.snook.ca/jonathan
	Add-ons by Robert Nyman, http://www.robertnyman.com
*/
function getElementsByClassName(oElm, strTagName, strClassName){
	var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
	var arrReturnElements = new Array();
	strClassName = strClassName.replace(/\-/g, "\\-");
	var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
	var oElement;
	for(var i=0; i<arrElements.length; i++){
		oElement = arrElements[i];		
		if(oRegExp.test(oElement.className)){
			arrReturnElements.push(oElement);
		}	
	}
	return (arrReturnElements)
}

//Function courtesy of:
//http://www.sitepoint.com/blogs/2004/05/26/closures-and-executing-javascript-on-page-load/
function addLoadEvent(func) 
{
	var oldonload = window.onload;
	if (typeof window.onload != 'function') 
	{
		window.onload = func;
	} 
	else 
	{
		window.onload = function() 
		{
			oldonload();
			func();
		}
	}
}

//Vertically Centres Images within a container by adding padding 
//to the container to push the image down into the centre
//NB. This should be run on the body tag's onload event
//Params: - containerTagName: The tag name of the container. eg div
//        - containerClassName: The class name of the container
function VerticallyCentreImages(containerTagName, containerClassName)
{
	containers = getElementsByClassName(document, containerTagName, containerClassName);
	
	for (i = 0; i < containers.length; i++)
	{
		containerHeight = containers[i].clientHeight;
		//document.getElementById("debug").innerHTML = "containerHeight: " + containers[i].clientHeight;
		images = containers[i].getElementsByTagName("img");
		
		imageHeight = images[0].height;
					
		topPadding = (containerHeight / 2) - (imageHeight / 2);
		
		containers[i].style.paddingTop = topPadding + "px";
		containers[i].style.height = (containerHeight - topPadding) + "px";
	}
}