function resizeText_bigger(name) {
  var elems = resizeText_getElementsByName(name);
  for ( var i = 0; i < elems.length; i++ )
    _resizeText(elems[i], 'bigger');
  for ( var i = 0; i < elems.length; i++ )
   _resizeText_untag(elems[i]);
}

function resizeText_smaller(name) {
  var elems = resizeText_getElementsByName(name);
  for ( var i = 0; i < elems.length; i++ )
    _resizeText(elems[i], 'smaller');
  for ( var i = 0; i < elems.length; i++ )
    _resizeText_untag(elems[i]);
}

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); 
    var parent = node.parentNode;
    if ( text != "" && !parent.getAttribute("managed") ) {
      var size =   parseInt(getElementStyle(parent, 'fontSize', 'font-size'));
      if ( !parent.getAttribute("initial") )
	parent.setAttribute("initial", size);
      parent.setAttribute("managed", 1);
      var initial = parent.getAttribute("initial");
      if ( (type == 'bigger') && (size < 18) )
	parent.style.fontSize = (size + 1) + "px";
      if ( (type == 'smaller') && (size > initial) )
	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 _resizeText_untag(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); 
    var parent = node.parentNode;
    parent.removeAttribute("managed", 0);
  } else {
    if ( (node.childNodes) && (node.childNodes.length > 0) )
      for ( var i = 0; i < node.childNodes.length; i++ ) {
	_resizeText_untag(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("type");
    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);
      }
  }
}
