function getElementsByClassName(element, classN) {
  var ret = new Array();
  if (element.childNodes) {
	for (var i=0; i<element.childNodes.length; i++) {
	  var child = element.childNodes[i];
	  if (child.childNodes && child.childNodes.length > 0) {
		ret = ret.concat(getElementsByClassName(child, classN));
	  }
	  if (child.className && -1 != child.className.indexOf(classN)) {
		  ret.push(child);
	  }
	}
  }
  return ret;
}

function getStyle(elem, styleProp)
{
	if (elem.currentStyle)
	  return elem.currentStyle[styleProp];
	else if (document.defaultView && document.defaultView.getComputedStyle) {
	  styleProp = styleProp.replace(/([A-Z])/g, "-$1").toLowerCase();
	  return document.defaultView.getComputedStyle(elem, null).getPropertyValue(styleProp);
	} else
	  return null;
}

function parsePxValue(str) {
  var index = str.indexOf("px");
  if (-1 != index)
	return parseFloat(str.substring(0, index));
  else
	return null;
}

