function resizeText_bigger(name) {
  var elems = resizeText_getElementsByName("wtm_resize");
  for ( var i = 0; i < elems.length; i++ )
    _resizeText(elems[i], 'bigger');
}

function resizeText_smaller(name) {
  var elems = resizeText_getElementsByName(name);
  for ( var i = 0; i < elems.length; i++ )
    _resizeText(elems[i], 'smaller');
}

function _resizeText(node, type) {
  if ( node == null )
    return;
  if ( node.nodeType == 1 ) {
    var nodeName = node.getAttribute("name");
    if ( nodeName && (nodeName == "wtm_resize_exclude") )
      return;
  }
  if ( node.nodeType == 3 )  { // Text node
    var text = trim(node.nodeValue); 
    if ( text != "" ) {
      var parent = node.parentNode;
      var size =   parseInt(getElementStyle(parent, 'fontSize', 'font-size'));
      if ( (type == 'bigger') && (size <= 20) )
	parent.style.fontSize = (size + 1) + "px";
      if ( (type == 'smaller') && (size >= 9) )
	parent.style.fontSize = (size - 1) + "px";      
    }
  } else {
    if ( (node.childNodes) && (node.childNodes.length > 0) )
      for ( var i = 0; i < node.childNodes.length; i++ ) {
	_resizeText(node.childNodes[i], type);
      }
  }
}

function trim(string) {
  return string.replace(/(^\s*)|(\s*$)/g,'');
} 

function getElementStyle(elem, IEStyleProp, CSSStyleProp) {
  if ( !elem )
    return;
  if (elem.currentStyle) {
    return elem.currentStyle[IEStyleProp];
  } else if (document.defaultView.getComputedStyle) {
    var compStyle = document.defaultView.getComputedStyle(elem, "");
    if ( compStyle )
      return compStyle.getPropertyValue(CSSStyleProp);
  }
  return "";
}

function resizeText_getElementsByName(name) {
  var nodes = [];
  _getElementsByName(document.body, nodes, name);
  return nodes;
}

function _getElementsByName(node, nodes, name) {
  if ( node == null )
    return;
  if ( node.nodeType == 1 ) {
    var nodeName = node.getAttribute("name");
    if (nodeName == name)
      nodes.push(node);
    if ( (node.childNodes) && (node.childNodes.length > 0) )
      for ( var i = 0; i < node.childNodes.length; i++ ) {
	_getElementsByName(node.childNodes[i], nodes, name);
      }
  }
}
