  
// this function is needed to work around 
// a bug in IE related to element attributes
function hasClass(obj) {
  var result = false;
  if (obj.getAttributeNode("class") != null) {
    result = obj.getAttributeNode("class").value;
  }
  return result;
}

function stripe(id) {
  // obtain a reference to the desired table
  // if no such table exists, abort
  var helpmeict = document.getElementById("helpmeict");
  if (! helpmeict) { return; }

  // by definition, tables can have more than one tbody
  // element, so we'll have to get the list of child
  // &lt;tbody&gt;s
  var tbodies = helpmeict.getElementsByTagName("tbody");

  // and iterate through them...
  for (var h = 0; h < tbodies.length; h++) {
    // the flag we'll use to keep track of
    // whether the current row is odd or even
    var even = false;
    
    // find all the &lt;tr&gt; elements...
    var trs = tbodies[h].getElementsByTagName("tr");
      
    // ... and iterate through them
    for (var i = 0; i < trs.length; i++) {

      // avoid rows that have a class attribute
      // or backgroundColor style
      if ((! hasClass(trs[i])
          || trs[i].className == "odd"
          || trs[i].className == "even") &&
          ! trs[i].style.backgroundColor) {
      
        trs[i].className =
          even ? "even" : "odd";
      }
      // flip from odd to even, or vice-versa
      even = ! even;
    }
  }
}
