

function getElementsByClassName(oElm, strTagName, oClassNames)
{
	//alert("getElementsByClassName");
    var arrElements = (strTagName == "*" && document.all)? document.all : oElm.getElementsByTagName(strTagName);
    var arrReturnElements = new Array();
    var arrRegExpClassNames = new Array();
    if(typeof oClassNames == "object")
	{
        for(var i=0; i<oClassNames.length; i++)
		{
            arrRegExpClassNames.push(new RegExp("(^|\\s)" + oClassNames[i].replace(/\-/g, "\\-") + "(\\s|$)"));
        }
    }
    else
	{
        arrRegExpClassNames.push(new RegExp("(^|\\s)" + oClassNames.replace(/\-/g, "\\-") + "(\\s|$)"));
    }
    var oElement;
    var bMatchesAll;
    for(var j=0; j<arrElements.length; j++)
	{
        oElement = arrElements[j];
        bMatchesAll = true;
        for(var k=0; k<arrRegExpClassNames.length; k++)
		{
            if(!arrRegExpClassNames[k].test(oElement.className))
			{
                bMatchesAll = false;
                break;                      
            }
        }
        if(bMatchesAll)
		{
            arrReturnElements.push(oElement);
        }
    }
    return (arrReturnElements);
}


function equaliseChildren()
{
	//alert("equaliseChildren");
	var minHeight = 133;
	var elementHeights = new Array();
	var equalElements = getElementsByClassName(document, "*", "equalise");
	
	for (i=0;i<equalElements.length;i++)
	{
		var tagName = equalElements[i].childNodes[0].nodeName;
		if(tagName == "#text") tagName = equalElements[i].childNodes[1].nodeName;		
		var childElements = equalElements[i].getElementsByTagName(tagName);
		
		for (var j = 0; j < childElements.length; j++)
		{
			//alert(childElements[i].offsetHeight);
			if(childElements[j].offsetHeight > minHeight) minHeight = childElements[j].offsetHeight;
		}
	}
	
	for (i=0;i<equalElements.length;i++)
	{
		var tagName = equalElements[i].childNodes[0].nodeName;
		if(tagName == "#text") tagName = equalElements[i].childNodes[1].nodeName;		
		var childElements = equalElements[i].getElementsByTagName(tagName);
		
		for (var j = 0; j < childElements.length; j++) 
		{
			//alert(minHeight + " - " + (childElements[j].offsetHeight - minHeight) + "?")
			childElements[j].style.height = minHeight + "px";			
			childElements[j].style.height = (minHeight - (childElements[j].offsetHeight - minHeight)) + 'px';
		}
	}
	
	return true;
};

function equaliseElementsOnPage()
{
	if(document.getElementById('equaliseElements'))
	{
		//alert("equaliseElementsOnPage");
		var lists = document.getElementsByTagName("ul");
		//alert("lists: " + lists.length);
		
		for(j=0;j<lists.length;j++)
		{
			//alert("j:" + j);
			if(lists[j].className == "profile-list")
			{
				//alert("equalise me");
				var minHeight = 133;
				var elementHeights = new Array();
				//var equalBase = document.getElementById('equaliseElements'); //getElementsByClassName(document, "*", "equaliseElements");
				var equalElements = getElementsByClassName(lists[j], "*", "equalised");
				lists[j].style.visibility = 'hidden';
				
				for (i=0;i<equalElements.length;i++)
				{
					if(equalElements[i].offsetHeight > minHeight) minHeight = equalElements[i].offsetHeight;
				}
				
				for (i=0;i<equalElements.length;i++)
				{
					equalElements[i].style.height = minHeight + "px";
					equalElements[i].style.height = (minHeight - (equalElements[i].offsetHeight - minHeight)) + 'px';
				}
				
				lists[j].style.visibility = 'visible';
				
				//return true;
			}
			
		}
		
		return true;
	}
	else
	{
		return false;
	}
};


schedule("window", equaliseElementsOnPage);
//schedule("equaliseElements", equaliseElementsOnPage);