function getElementsByClass(searchClass,node,tag) {
	var classElements = new Array();
	if ( node == null )
		node = document;
	if ( tag == null )
		tag = '*';
	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	var pattern = new RegExp('(^|\\\\s)'+searchClass+'(\\\\s|$)');
	for (i = 0, j = 0; i < elsLen; i++) {
		if ( pattern.test(els[i].className) ) {
			classElements[j] = els[i];
			j++;
		}
	}
	return classElements;
}
var morelink;
var moreexpanded = 0;
function shrinkElements(classname, tagname)
{
  if (!tagname) { tagname = 'a'; }
  var elmts = getElementsByClass(classname, null, tagname);
  for (i=0; i<elmts.length; i++)
  {
    elmts[i].style.display = 'none';
  }
  if (elmts.length > 0)
  {
    if (!morelink)
    {
      morelink = document.createElement('span');
      morelink.className = 'morelink';
      morelink.innerHTML = '&raquo;&nbsp;<a href="javascript:toggleElements(\'extra\', \'' + tagname + '\')">More</a>';
      elmts[0].parentNode.appendChild(morelink);
    }
    else
    {
      morelink.innerHTML = morelink.innerHTML.replace(/Less/, 'More');
    }
  }
  moreexpanded = 0;
}
function expandElements(classname, tagname)
{
  if (!tagname) { tagname = 'a'; }
  var elmts = getElementsByClass(classname, null, tagname);
  for (i=0; i<elmts.length; i++)
  {
    elmts[i].style.display = '';
  }
  morelink.innerHTML = morelink.innerHTML.replace(/More/, 'Less');
  moreexpanded = 1;
}
function toggleElements(classname, tagname)
{
  if (moreexpanded)
    shrinkElements(classname, tagname);
  else
    expandElements(classname, tagname);
}
